10406 2024. 04. 01 20:57:09 Valaki2 Xorzótábla cpp17 Hibás válasz 0/100 1.746s 36512 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long
#define pb push_back
#define mp make_pair
#define pii pair<int, int>
#define fi first
#define se second

const int maxn = 1e5;

int n, m;
int a[1 + maxn];
int b[1 + maxn];

int len;
int halflen;

struct event {
    int type;
    // 0 - update
    // 1 - query
    int pos;
    bool operator < (const event &other) const {
        if(pos == other.pos) {
            return type < other.type;
        }
        return pos < other.pos;
    }
};

int get_bit(int bit) {
    len = (1 << (bit + 1));
    halflen = (1 << bit);
    vector<event> events;
    for(int i = 1; i <= m; i++) {
        int bi = b[i] % len;
        int l = (halflen - bi + 2 * len) % len;
        int r = (len - 1 - bi + 2 * len) % len;
        if(l == 0) {
            events.pb(event{1, r});
        } else {
            if(l < r) {
                events.pb(event{1, l - 1});
                events.pb(event{1, r});
            } else {
                events.pb(event{1, r});
                events.pb(event{1, l - 1});
                events.pb(event{1, len - 1});
            }
        }
    }
    for(int i = 1; i <= n; i++) {
        int ai = a[i] % len;
        events.pb(event{0, ai});
    }
    sort(events.begin(), events.end());
    int res = 0;
    int cnt = 0;
    for(event e : events) {
        if(e.type == 0) {
            cnt++;
            cnt %= 2;
        } else {
            res += cnt;
        }
    }
    res %= 2;
    return res;
}

void solve() {
    cin >> n >> m;
    for(int i = 1; i <= n; i++) {
        cin >> a[i];
    }
    for(int i = 1; i <= m; i++) {
        cin >> b[i];
    }
    int ans = 0;
    for(int j = 0; j < 31; j++) {
        ans += (get_bit(j) << j);
    }
    cout << ans << "\n";
}

signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    solve();
}
Részfeladat Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Elfogadva 3ms 1840 KiB
2 Hibás válasz 1.45s 30576 KiB
subtask2 0/14
3 Hibás válasz 3ms 2248 KiB
4 Hibás válasz 9ms 2580 KiB
5 Elfogadva 4ms 2380 KiB
6 Elfogadva 6ms 2700 KiB
7 Elfogadva 9ms 3000 KiB
8 Elfogadva 12ms 3020 KiB
9 Hibás válasz 14ms 3284 KiB
subtask3 0/14
10 Elfogadva 3ms 3112 KiB
11 Elfogadva 1.583s 33632 KiB
12 Elfogadva 1.583s 32436 KiB
13 Hibás válasz 1.746s 34292 KiB
14 Hibás válasz 1.746s 34092 KiB
subtask4 0/14
15 Elfogadva 1.12s 31712 KiB
16 Elfogadva 1.31s 32696 KiB
17 Hibás válasz 1.069s 31360 KiB
18 Elfogadva 1.491s 34528 KiB
19 Elfogadva 1.475s 34660 KiB
subtask5 0/21
20 Hibás válasz 172ms 10964 KiB
21 Elfogadva 898ms 22444 KiB
22 Elfogadva 861ms 21936 KiB
23 Elfogadva 1.309s 33888 KiB
24 Elfogadva 1.358s 34232 KiB
25 Hibás válasz 1s 36496 KiB
subtask6 0/37
26 Elfogadva 118ms 7936 KiB
27 Hibás válasz 1.25s 31160 KiB
28 Hibás válasz 1.021s 21960 KiB
29 Elfogadva 1.427s 32156 KiB
30 Elfogadva 1.741s 34968 KiB
31 Elfogadva 1.746s 34988 KiB
32 Elfogadva 1.192s 36512 KiB
33 Hibás válasz 1.741s 36064 KiB
34 Elfogadva 1.743s 36056 KiB