105512024-04-05 12:32:24CWMXorzótáblacpp17Időlimit túllépés 14/1002.099s6168 KiB
#include <iostream>
#include <vector>
#include <set>
#include <queue>
#include <algorithm>
#include <climits>

using namespace std;
long long cMod = 2;
int bitlookahead = 1;

bool comp(int a, int b) {
    a = a % cMod;
    b = b % cMod;
    return b > a;
}

signed main()
{
    int sA, sB;
    cin >> sA >> sB;
    vector<int> a(sA);
    vector<int> b(sB);
    for (size_t i = 0; i < sA; i++)
    {
        cin >> a[i];
    }
    for (size_t i = 0; i < sB; i++)
    {
        cin >> b[i];
    }
    long long res = 0;
    while (cMod<4e9)
    {
        sort(a.begin(), a.end(), comp);
        sort(b.begin(), b.end(), comp);
        vector<int> aTemp(sA);
        vector<int> bTemp(sB);
        for (size_t i = 0; i < sA; i++)
        {
            aTemp[i] = a[i] % cMod;
        }
        for (size_t i = 0; i < sB; i++)
        {
            bTemp[i] = b[i] % cMod;
        }
        long long lLim = cMod / 2;
        long long uLim = cMod;
        int ans = 0;
        for (size_t i = 0; i < aTemp.size(); i++)
        {
            int lIdx = lower_bound(bTemp.begin(), bTemp.end(), lLim - aTemp[i]) - bTemp.begin();
            int uIdx = lower_bound(bTemp.begin(), bTemp.end(), uLim - aTemp[i]) - bTemp.begin();
            int ulIdx = lower_bound(bTemp.begin(), bTemp.end(), uLim+lLim - aTemp[i]) - bTemp.begin();
            int cDif = uIdx - lIdx + bTemp.size()-ulIdx;
            ans += cDif;
        }
        if (ans % 2 == 1) {
            res += cMod;
        }
        cMod *= 2;
        bitlookahead++;
    }
    cout << res/2;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1808 KiB
2Időlimit túllépés2.099s2716 KiB
subtask214/14
3Elfogadva3ms2164 KiB
4Elfogadva14ms2320 KiB
5Elfogadva14ms2520 KiB
6Elfogadva8ms2728 KiB
7Elfogadva23ms2704 KiB
8Elfogadva21ms2756 KiB
9Elfogadva29ms2876 KiB
subtask30/14
10Elfogadva4ms2996 KiB
11Időlimit túllépés2.099s4136 KiB
12Időlimit túllépés2.099s4156 KiB
13Időlimit túllépés2.029s4456 KiB
14Időlimit túllépés2.065s4632 KiB
subtask40/14
15Időlimit túllépés2.065s4012 KiB
16Időlimit túllépés2.053s4320 KiB
17Időlimit túllépés2.066s4400 KiB
18Időlimit túllépés2.015s4916 KiB
19Időlimit túllépés2.062s4944 KiB
subtask50/21
20Elfogadva527ms4892 KiB
21Elfogadva1.794s6168 KiB
22Időlimit túllépés2.075s4900 KiB
23Időlimit túllépés2.065s4976 KiB
24Időlimit túllépés2.042s5128 KiB
25Időlimit túllépés2.073s5144 KiB
subtask60/37
26Elfogadva261ms4556 KiB
27Időlimit túllépés2.066s4540 KiB
28Időlimit túllépés2.062s4712 KiB
29Időlimit túllépés2.049s4912 KiB
30Időlimit túllépés2.042s5072 KiB
31Időlimit túllépés2.049s5176 KiB
32Időlimit túllépés2.073s5244 KiB
33Időlimit túllépés2.069s5216 KiB
34Időlimit túllépés2.058s5208 KiB