167182025-05-10 16:01:35TaxiradioLámpákcpp17Accepted 100/100126ms1460 KiB
// Source: https://usaco.guide/general/io

#include <bits/stdc++.h>
using namespace std;

int main() {
	int n , k , q; cin >> n >> k >> q;
    vector<int> a(1 , 0);
    for(int i = 1; i < n; i++){
        int y; cin >> y;
        a.push_back(a[y-1]+1);
    }
    vector<int> b(1 , 0);
    for(int i = 1; i < n; i++){
        int u = b.back() , c = k+i-1;
        while(c%2==0){
            c/=2;
            u++;
        }
        c = i;
        while(c%2==0){
            c/=2;
            u--;
        }
        b.push_back(u);
    }
    while(q--){
        int ans = 0;
        for(int i = 0; i < n; i++){
            int y; cin >> y;
            if(y && b[a[i]]==0)ans++;
        }
        cout << ans%2 << "\n";
    }
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted1ms316 KiB
2Accepted1ms316 KiB
subtask215/15
3Accepted3ms316 KiB
4Accepted39ms316 KiB
5Accepted111ms1460 KiB
subtask310/10
6Accepted1ms508 KiB
7Accepted1ms316 KiB
8Accepted1ms496 KiB
9Accepted1ms316 KiB
10Accepted1ms316 KiB
subtask430/30
11Accepted43ms412 KiB
12Accepted43ms508 KiB
13Accepted43ms412 KiB
14Accepted43ms404 KiB
15Accepted43ms408 KiB
16Accepted43ms500 KiB
17Accepted43ms508 KiB
subtask545/45
18Accepted98ms756 KiB
19Accepted100ms748 KiB
20Accepted100ms636 KiB
21Accepted101ms488 KiB
22Accepted100ms736 KiB
23Accepted125ms1436 KiB
24Accepted126ms1452 KiB
25Accepted126ms1456 KiB
26Accepted126ms1452 KiB
27Accepted126ms1456 KiB
28Accepted90ms316 KiB
29Accepted92ms316 KiB