54292023-05-23 16:08:31111Xorzótáblacpp14Időlimit túllépés 35/1002.076s66400 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ÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1808 KiB
2Elfogadva1.695s55352 KiB
subtask214/14
3Elfogadva1.695s55352 KiB
4Elfogadva3ms2232 KiB
5Elfogadva4ms2344 KiB
6Elfogadva6ms3272 KiB
7Elfogadva4ms2920 KiB
8Elfogadva8ms3552 KiB
9Elfogadva8ms3532 KiB
10Elfogadva10ms3920 KiB
subtask30/14
11Elfogadva10ms3920 KiB
12Elfogadva3ms3296 KiB
13Elfogadva1.348s63260 KiB
14Elfogadva1.842s60224 KiB
15Időlimit túllépés2.076s34000 KiB
16Időlimit túllépés2.028s65188 KiB
subtask40/14
17Időlimit túllépés2.028s65188 KiB
18Elfogadva287ms34860 KiB
19Elfogadva404ms58912 KiB
20Elfogadva462ms65364 KiB
21Elfogadva504ms64904 KiB
22Elfogadva523ms65284 KiB
subtask521/21
23Elfogadva523ms65284 KiB
24Elfogadva63ms16860 KiB
25Elfogadva291ms28740 KiB
26Elfogadva374ms63228 KiB
27Elfogadva449ms58964 KiB
28Elfogadva469ms63880 KiB
29Elfogadva282ms62500 KiB
subtask60/37
30Elfogadva282ms62500 KiB
31Elfogadva59ms10804 KiB
32Elfogadva1.126s18088 KiB
33Elfogadva1.177s66168 KiB
34Elfogadva1.503s40824 KiB
35Időlimit túllépés2.072s35572 KiB
36Időlimit túllépés2.068s35380 KiB
37Elfogadva300ms62848 KiB
38Időlimit túllépés2.04s34896 KiB
39Elfogadva1.947s66400 KiB