8647 2024. 01. 24 19:27:35 111 Lámpák cpp11 Elfogadva 100/100 13ms 26968 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 Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Elfogadva 3ms 1812 KiB
2 Elfogadva 3ms 2044 KiB
subtask2 15/15
3 Elfogadva 3ms 2424 KiB
4 Elfogadva 6ms 3804 KiB
5 Elfogadva 12ms 8612 KiB
subtask3 10/10
6 Elfogadva 3ms 4432 KiB
7 Elfogadva 3ms 4760 KiB
8 Elfogadva 3ms 4836 KiB
9 Elfogadva 3ms 4792 KiB
10 Elfogadva 3ms 4740 KiB
subtask4 30/30
11 Elfogadva 6ms 5932 KiB
12 Elfogadva 6ms 6048 KiB
13 Elfogadva 6ms 6520 KiB
14 Elfogadva 6ms 7044 KiB
15 Elfogadva 6ms 7316 KiB
16 Elfogadva 6ms 7760 KiB
17 Elfogadva 6ms 8336 KiB
subtask5 45/45
18 Elfogadva 9ms 11612 KiB
19 Elfogadva 9ms 12980 KiB
20 Elfogadva 10ms 14232 KiB
21 Elfogadva 9ms 15228 KiB
22 Elfogadva 9ms 16236 KiB
23 Elfogadva 12ms 20280 KiB
24 Elfogadva 13ms 21908 KiB
25 Elfogadva 12ms 23752 KiB
26 Elfogadva 13ms 25304 KiB
27 Elfogadva 13ms 26968 KiB
28 Elfogadva 8ms 24732 KiB
29 Elfogadva 8ms 25928 KiB