5429 2023. 05. 23 16:08:31 111 Xorzótábla cpp14 Időlimit túllépés 35/100 2.076s 66400 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long

#define BSEARCH(v, x) (distance((v).begin(), lower_bound((v).begin(), (v).end(), (x))))

#define BIT(x, i) ((x) >> (i) & 1ll)
#define LOPT(i) (~0ll ^ ~0ll << (i))

main() {
	int AC, BC;
	cin >> AC >> BC;
	vector<int> A(AC), B(BC);
	for (int i = 0; i < AC; i++) {
		cin >> A[i];
	}
	for (int i = 0; i < BC; i++) {
		cin >> B[i];
	}
	vector<vector<int>> v(34);
	vector<vector<int>> w(34);
	int x = 0;
	for (int i = 0; i < 34; i++) {
		for (int j = 0; j < AC; j++) {
			if (BIT(A[j], i)) {
				v[i].push_back(A[j] & LOPT(i));
			}
			else {
				w[i].push_back(A[j] & LOPT(i));
			}
		}
		sort(v[i].begin(), v[i].end());
		sort(w[i].begin(), w[i].end());
	}
	for (int i = 0; i < BC; i++) {
		for (int j = 0; j < 34; j++) {
			int c = 0;
			if (BIT(B[i], j)) {
				c += w[j].size();
				c += v[j].size() - BSEARCH(v[j], (1ll << j) - (B[i] & LOPT(j)));
				c -= w[j].size() - BSEARCH(w[j], (1ll << j) - (B[i] & LOPT(j)));
			}
			else {
				c += v[j].size();
				c += w[j].size() - BSEARCH(w[j], (1ll << j) - (B[i] & LOPT(j)));
				c -= v[j].size() - BSEARCH(v[j], (1ll << j) - (B[i] & LOPT(j)));
			}
			x ^= c % 2 << j;
		}
	}
	cout << x << endl;
	return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Elfogadva 3ms 1808 KiB
2 Elfogadva 1.695s 55352 KiB
subtask2 14/14
3 Elfogadva 1.695s 55352 KiB
4 Elfogadva 3ms 2232 KiB
5 Elfogadva 4ms 2344 KiB
6 Elfogadva 6ms 3272 KiB
7 Elfogadva 4ms 2920 KiB
8 Elfogadva 8ms 3552 KiB
9 Elfogadva 8ms 3532 KiB
10 Elfogadva 10ms 3920 KiB
subtask3 0/14
11 Elfogadva 10ms 3920 KiB
12 Elfogadva 3ms 3296 KiB
13 Elfogadva 1.348s 63260 KiB
14 Elfogadva 1.842s 60224 KiB
15 Időlimit túllépés 2.076s 34000 KiB
16 Időlimit túllépés 2.028s 65188 KiB
subtask4 0/14
17 Időlimit túllépés 2.028s 65188 KiB
18 Elfogadva 287ms 34860 KiB
19 Elfogadva 404ms 58912 KiB
20 Elfogadva 462ms 65364 KiB
21 Elfogadva 504ms 64904 KiB
22 Elfogadva 523ms 65284 KiB
subtask5 21/21
23 Elfogadva 523ms 65284 KiB
24 Elfogadva 63ms 16860 KiB
25 Elfogadva 291ms 28740 KiB
26 Elfogadva 374ms 63228 KiB
27 Elfogadva 449ms 58964 KiB
28 Elfogadva 469ms 63880 KiB
29 Elfogadva 282ms 62500 KiB
subtask6 0/37
30 Elfogadva 282ms 62500 KiB
31 Elfogadva 59ms 10804 KiB
32 Elfogadva 1.126s 18088 KiB
33 Elfogadva 1.177s 66168 KiB
34 Elfogadva 1.503s 40824 KiB
35 Időlimit túllépés 2.072s 35572 KiB
36 Időlimit túllépés 2.068s 35380 KiB
37 Elfogadva 300ms 62848 KiB
38 Időlimit túllépés 2.04s 34896 KiB
39 Elfogadva 1.947s 66400 KiB