167342025-05-11 22:08:11BucsMateXorzótáblacpp17Hibás válasz 0/100992ms3920 KiB
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main()
{
    int N, M;
    cin >> N >> M;

    vector<int> A(N), B(M);
    for(int i = 0; i < N; i++){
        cin >> A[i];
    }
    for(int i = 0; i < M; i++){
        cin >> B[i];
    }

    long long ans = 0;
    for(int mask = 0; mask < 30; mask++){
        //bitenkent megszamoljuk hany 1-es van
        int x = (1LL << mask), y = (1LL << (mask+1));
        vector<int> tempA(N), tempB(M);
        for (int i = 0; i < N; i++) {
            tempA[i] = A[i] % y;
        }
        for (int i = 0; i < M; i++) {
            tempB[i] = B[i] % y;
        }
        sort(tempA.begin(), tempA.end());
        sort(tempB.begin(), tempB.end());
        int cnt = 0;

        for(int j = 0; j < N; j++){
            int left = lower_bound(tempB.begin(), tempB.end(), x-tempA[j])-tempB.begin();
            int right = lower_bound(tempB.begin(), tempB.end(), y-tempA[j])-tempB.begin();
            int valami = lower_bound(tempB.begin(), tempB.end(), (x+y)-tempA[j])-tempB.begin();
            //a valami azert kell, mert lehet tulcsordulas a kovetkezo bitbe
            cnt += right-left + M - valami;
        }
        if(cnt % 2 == 1){
            ans += (1 << mask);
        }
    }
    cout << ans << endl;
    
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
2Hibás válasz828ms3380 KiB
subtask20/14
3Hibás válasz1ms316 KiB
4Hibás válasz3ms316 KiB
5Elfogadva4ms316 KiB
6Elfogadva2ms320 KiB
7Elfogadva7ms432 KiB
8Elfogadva6ms316 KiB
9Hibás válasz8ms432 KiB
subtask30/14
10Elfogadva2ms316 KiB
11Elfogadva892ms3312 KiB
12Hibás válasz890ms3564 KiB
13Hibás válasz991ms3908 KiB
14Hibás válasz990ms3892 KiB
subtask40/14
15Elfogadva470ms2720 KiB
16Hibás válasz642ms3468 KiB
17Hibás válasz651ms3304 KiB
18Elfogadva728ms3832 KiB
19Elfogadva727ms3824 KiB
subtask50/21
20Elfogadva96ms980 KiB
21Elfogadva344ms1588 KiB
22Hibás válasz518ms2056 KiB
23Hibás válasz593ms2428 KiB
24Elfogadva634ms2544 KiB
25Elfogadva430ms2756 KiB
subtask60/37
26Elfogadva68ms564 KiB
27Elfogadva458ms2396 KiB
28Hibás válasz769ms3052 KiB
29Hibás válasz702ms3032 KiB
30Elfogadva992ms3896 KiB
31Elfogadva990ms3892 KiB
32Elfogadva384ms3920 KiB
33Hibás válasz985ms3916 KiB
34Hibás válasz985ms3920 KiB