15000 | 2025-02-10 21:58:48 | feheristvan | Xorzótábla | cpp17 | Időlimit túllépés 49/100 | 2.101s | 17640 KiB |
#include <bits/stdc++.h>
using namespace std;
#define BIT(x, i) ((x) >> (i) & 1)
#define LOPT(i) (~0 ^ ~0 << (i))
// az stl-re semmit se lehet bizni...
int cmp(const void* a, const void* b) {
if (*(int*)a < *(int*)b) {
return -1;
}
else if (*(int*)a > *(int*)b) {
return 1;
}
else {
return 0;
}
}
int bs(const vector<int>& v, int x) {
int l = 0, h = v.size();
while (l != h) {
int m = (l + h) / 2;
if (v[m] >= x) {
h = m;
}
else {
l = m + 1;
}
}
return h;
}
int 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(32);
vector<vector<int>> w(32);
int x = 0;
for (int i = 0; i < 32; 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));
}
}
qsort(v[i].data(), v[i].size(), sizeof(int), cmp);
qsort(w[i].data(), w[i].size(), sizeof(int), cmp);
}
for (int i = 0; i < BC; i++) {
for (int j = 0; j < 32; j++) {
int c = 0;
int y = (1 << j) - (B[i] & LOPT(j));
if (BIT(B[i], j)) {
c += w[j].size();
c += v[j].size() - bs(v[j], y);
c -= w[j].size() - bs(w[j], y);
}
else {
c += v[j].size();
c += w[j].size() - bs(w[j], y);
c -= v[j].size() - bs(v[j], y);
}
x ^= c % 2 << j;
}
}
cout << x << endl;
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
subtask1 | 0/0 | ||||||
1 | Elfogadva | 1ms | 316 KiB | ||||
2 | Elfogadva | 1.682s | 14352 KiB | ||||
subtask2 | 14/14 | ||||||
3 | Elfogadva | 1ms | 316 KiB | ||||
4 | Elfogadva | 2ms | 316 KiB | ||||
5 | Elfogadva | 4ms | 564 KiB | ||||
6 | Elfogadva | 2ms | 316 KiB | ||||
7 | Elfogadva | 8ms | 564 KiB | ||||
8 | Elfogadva | 8ms | 316 KiB | ||||
9 | Elfogadva | 10ms | 564 KiB | ||||
subtask3 | 0/14 | ||||||
10 | Elfogadva | 1ms | 316 KiB | ||||
11 | Elfogadva | 1.503s | 15952 KiB | ||||
12 | Elfogadva | 1.947s | 16312 KiB | ||||
13 | Időlimit túllépés | 2.101s | 17640 KiB | ||||
14 | Időlimit túllépés | 2.039s | 16536 KiB | ||||
subtask4 | 14/14 | ||||||
15 | Elfogadva | 400ms | 8772 KiB | ||||
16 | Elfogadva | 630ms | 15356 KiB | ||||
17 | Elfogadva | 731ms | 16520 KiB | ||||
18 | Elfogadva | 769ms | 16828 KiB | ||||
19 | Elfogadva | 791ms | 16928 KiB | ||||
subtask5 | 21/21 | ||||||
20 | Elfogadva | 101ms | 3320 KiB | ||||
21 | Elfogadva | 382ms | 6692 KiB | ||||
22 | Elfogadva | 615ms | 14484 KiB | ||||
23 | Elfogadva | 666ms | 13380 KiB | ||||
24 | Elfogadva | 718ms | 14828 KiB | ||||
25 | Elfogadva | 351ms | 14896 KiB | ||||
subtask6 | 0/37 | ||||||
26 | Elfogadva | 79ms | 2100 KiB | ||||
27 | Elfogadva | 1.093s | 4916 KiB | ||||
28 | Elfogadva | 1.383s | 15708 KiB | ||||
29 | Elfogadva | 1.449s | 10440 KiB | ||||
30 | Időlimit túllépés | 2.088s | 16468 KiB | ||||
31 | Időlimit túllépés | 2.081s | 16428 KiB | ||||
32 | Elfogadva | 393ms | 16104 KiB | ||||
33 | Időlimit túllépés | 2.059s | 16788 KiB | ||||
34 | Elfogadva | 1.953s | 16592 KiB |