55622023-07-27 11:20:59zsomborLámpákcpp17Elfogadva 100/100130ms5716 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ÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms3168 KiB
2Elfogadva3ms3384 KiB
subtask215/15
3Elfogadva4ms3596 KiB
4Elfogadva41ms3812 KiB
5Elfogadva109ms4152 KiB
subtask310/10
6Elfogadva4ms4232 KiB
7Elfogadva3ms4292 KiB
8Elfogadva4ms4388 KiB
9Elfogadva3ms4292 KiB
10Elfogadva4ms4416 KiB
subtask430/30
11Elfogadva43ms4508 KiB
12Elfogadva48ms4728 KiB
13Elfogadva46ms4988 KiB
14Elfogadva48ms5332 KiB
15Elfogadva52ms5128 KiB
16Elfogadva43ms5132 KiB
17Elfogadva50ms5228 KiB
subtask545/45
18Elfogadva104ms5212 KiB
19Elfogadva108ms5212 KiB
20Elfogadva104ms5200 KiB
21Elfogadva111ms5192 KiB
22Elfogadva105ms5192 KiB
23Elfogadva126ms5204 KiB
24Elfogadva130ms5384 KiB
25Elfogadva128ms5328 KiB
26Elfogadva129ms5604 KiB
27Elfogadva130ms5524 KiB
28Elfogadva97ms5588 KiB
29Elfogadva97ms5716 KiB