104032024-04-01 20:51:09Valaki2Xorzótáblacpp17Hibás válasz 0/1001.699s69908 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 < 30; j++) {
        ans += (get_bit(j) << j);
    }
    cout << ans << "\n";
}

signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    solve();
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1832 KiB
2Hibás válasz1.417s32236 KiB
subtask20/14
3Hibás válasz3ms3904 KiB
4Hibás válasz9ms4372 KiB
5Elfogadva4ms4260 KiB
6Elfogadva6ms4552 KiB
7Elfogadva9ms4952 KiB
8Elfogadva12ms5188 KiB
9Hibás válasz14ms5428 KiB
subtask30/14
10Elfogadva3ms5400 KiB
11Elfogadva1.608s36956 KiB
12Elfogadva1.475s37364 KiB
13Hibás válasz1.625s40928 KiB
14Hibás válasz1.625s42864 KiB
subtask40/14
15Elfogadva1.093s41736 KiB
16Elfogadva1.269s44544 KiB
17Hibás válasz1.034s44464 KiB
18Elfogadva1.434s49544 KiB
19Elfogadva1.421s51380 KiB
subtask50/21
20Hibás válasz167ms27728 KiB
21Elfogadva869ms39848 KiB
22Elfogadva820ms39720 KiB
23Elfogadva1.266s52404 KiB
24Elfogadva1.312s53392 KiB
25Hibás válasz972ms56016 KiB
subtask60/37
26Elfogadva114ms27680 KiB
27Hibás válasz1.271s52160 KiB
28Hibás válasz1.016s44548 KiB
29Elfogadva1.315s56096 KiB
30Elfogadva1.689s60824 KiB
31Elfogadva1.623s62724 KiB
32Elfogadva1.085s66264 KiB
33Hibás válasz1.699s67928 KiB
34Elfogadva1.623s69908 KiB