5430 | 2023-05-23 16:39:27 | 111 | Xorzótábla | cpp14 | Elfogadva 100/100 | 1.934s | 34356 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 | 3ms | 1808 KiB | ||||
2 | Elfogadva | 1.597s | 26604 KiB | ||||
subtask2 | 14/14 | ||||||
3 | Elfogadva | 1.597s | 26604 KiB | ||||
4 | Elfogadva | 3ms | 2092 KiB | ||||
5 | Elfogadva | 4ms | 2116 KiB | ||||
6 | Elfogadva | 6ms | 2756 KiB | ||||
7 | Elfogadva | 4ms | 2548 KiB | ||||
8 | Elfogadva | 8ms | 3064 KiB | ||||
9 | Elfogadva | 9ms | 3048 KiB | ||||
10 | Elfogadva | 12ms | 3464 KiB | ||||
subtask3 | 14/14 | ||||||
11 | Elfogadva | 12ms | 3464 KiB | ||||
12 | Elfogadva | 3ms | 3268 KiB | ||||
13 | Elfogadva | 1.371s | 31760 KiB | ||||
14 | Elfogadva | 1.697s | 31548 KiB | ||||
15 | Elfogadva | 1.899s | 34356 KiB | ||||
16 | Elfogadva | 1.899s | 31836 KiB | ||||
subtask4 | 14/14 | ||||||
17 | Elfogadva | 1.899s | 31836 KiB | ||||
18 | Elfogadva | 372ms | 18240 KiB | ||||
19 | Elfogadva | 560ms | 30604 KiB | ||||
20 | Elfogadva | 634ms | 33096 KiB | ||||
21 | Elfogadva | 683ms | 33260 KiB | ||||
22 | Elfogadva | 697ms | 33248 KiB | ||||
subtask5 | 21/21 | ||||||
23 | Elfogadva | 697ms | 33248 KiB | ||||
24 | Elfogadva | 92ms | 9896 KiB | ||||
25 | Elfogadva | 352ms | 16528 KiB | ||||
26 | Elfogadva | 524ms | 31596 KiB | ||||
27 | Elfogadva | 589ms | 29248 KiB | ||||
28 | Elfogadva | 629ms | 31704 KiB | ||||
29 | Elfogadva | 340ms | 31860 KiB | ||||
subtask6 | 37/37 | ||||||
30 | Elfogadva | 340ms | 31860 KiB | ||||
31 | Elfogadva | 72ms | 7748 KiB | ||||
32 | Elfogadva | 1.088s | 11304 KiB | ||||
33 | Elfogadva | 1.22s | 32140 KiB | ||||
34 | Elfogadva | 1.411s | 22048 KiB | ||||
35 | Elfogadva | 1.902s | 33132 KiB | ||||
36 | Elfogadva | 1.934s | 32592 KiB | ||||
37 | Elfogadva | 370ms | 32160 KiB | ||||
38 | Elfogadva | 1.893s | 33316 KiB | ||||
39 | Elfogadva | 1.878s | 33388 KiB |