5562 2023. 07. 27 11:20:59 zsombor Lámpák cpp17 Elfogadva 100/100 130ms 5716 KiB
#include <iostream>
#include <vector>
using namespace std;

int n, k, q;
vector<int> p(1e5 + 1, 0);
vector<int> d(1e5 + 1, 0);

int binomial(int a, int b){
    if (!b) return 1;
    if (!(a % 2) && b % 2) return 0;
    return binomial(a / 2, b / 2);
}

void query(){
    int a, ans = 0;
    for (int i = 1; i <= n; i++){
        cin >> a;
        if (a) ans += binomial(d[i] + k - 1, d[i]);
    }
    cout << ans % 2 << endl;
}

int main(){
    cin >> n >> k >> q;
    for (int i = 2; i <= n; i++){
        cin >> p[i];
        d[i] = d[p[i]] + 1;
    }
    for (int i = 0; i < q; i++) query();
}
Részfeladat Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Elfogadva 3ms 3168 KiB
2 Elfogadva 3ms 3384 KiB
subtask2 15/15
3 Elfogadva 4ms 3596 KiB
4 Elfogadva 41ms 3812 KiB
5 Elfogadva 109ms 4152 KiB
subtask3 10/10
6 Elfogadva 4ms 4232 KiB
7 Elfogadva 3ms 4292 KiB
8 Elfogadva 4ms 4388 KiB
9 Elfogadva 3ms 4292 KiB
10 Elfogadva 4ms 4416 KiB
subtask4 30/30
11 Elfogadva 43ms 4508 KiB
12 Elfogadva 48ms 4728 KiB
13 Elfogadva 46ms 4988 KiB
14 Elfogadva 48ms 5332 KiB
15 Elfogadva 52ms 5128 KiB
16 Elfogadva 43ms 5132 KiB
17 Elfogadva 50ms 5228 KiB
subtask5 45/45
18 Elfogadva 104ms 5212 KiB
19 Elfogadva 108ms 5212 KiB
20 Elfogadva 104ms 5200 KiB
21 Elfogadva 111ms 5192 KiB
22 Elfogadva 105ms 5192 KiB
23 Elfogadva 126ms 5204 KiB
24 Elfogadva 130ms 5384 KiB
25 Elfogadva 128ms 5328 KiB
26 Elfogadva 129ms 5604 KiB
27 Elfogadva 130ms 5524 KiB
28 Elfogadva 97ms 5588 KiB
29 Elfogadva 97ms 5716 KiB