86472024-01-24 19:27:35111Lámpákcpp11Elfogadva 100/10013ms26968 KiB
#include <bits/stdc++.h>
using namespace std;

bool incl(int a, int b) {
	// a includes b
	// CSES - Xor Pyramid
	return (a | b) == a;
}

char* pi = new char[10000000];

int ru() {
	while (!isdigit(*pi)) {
		pi++;
	}
	int x = 0;
	while (isdigit(*pi)) {
		x *= 10;
		x += *pi - '0';
		pi++;
	}
	return x;
}

int main() {
	fread(pi, 10000000, 1, stdin);
//	fread(pi, 10000000, 1, fopen("be2.txt", "r"));
	int N = ru(), K = ru(), Q = ru();
	vector<int> v(N + 1);
	for (int i = 2; i <= N; i++) {
		v[i] = ru();
	}
	vector<int> l(N + 1);
	for (int i = 2; i <= N; i++) {
		l[i] = l[v[i]] + 1;
	}
	while (Q--) {
		vector<int> w(N + 1);
		for (int i = 1; i <= N; i++) {
			w[i] = ru();
		}
		int ans = 0;
		for (int i = 1; i <= N; i++) {
			if (w[i]) {
				ans ^= incl(K - 1 + l[i], K - 1);
			}
		}
		cout << ans << '\n';
	}
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1812 KiB
2Elfogadva3ms2044 KiB
subtask215/15
3Elfogadva3ms2424 KiB
4Elfogadva6ms3804 KiB
5Elfogadva12ms8612 KiB
subtask310/10
6Elfogadva3ms4432 KiB
7Elfogadva3ms4760 KiB
8Elfogadva3ms4836 KiB
9Elfogadva3ms4792 KiB
10Elfogadva3ms4740 KiB
subtask430/30
11Elfogadva6ms5932 KiB
12Elfogadva6ms6048 KiB
13Elfogadva6ms6520 KiB
14Elfogadva6ms7044 KiB
15Elfogadva6ms7316 KiB
16Elfogadva6ms7760 KiB
17Elfogadva6ms8336 KiB
subtask545/45
18Elfogadva9ms11612 KiB
19Elfogadva9ms12980 KiB
20Elfogadva10ms14232 KiB
21Elfogadva9ms15228 KiB
22Elfogadva9ms16236 KiB
23Elfogadva12ms20280 KiB
24Elfogadva13ms21908 KiB
25Elfogadva12ms23752 KiB
26Elfogadva13ms25304 KiB
27Elfogadva13ms26968 KiB
28Elfogadva8ms24732 KiB
29Elfogadva8ms25928 KiB