func_code_string: #include <bits/stdc++.h>   using namespace std;   using ll = long long;   using pi = pair<ll, ll>;   const ll inf = 0x3f3f3f3f3f3f3f3f;   const ll minf = 0xc0c0c0c0c0c0c0c0;   ll A[400400];   ll B[400400];   inline bool between(ll le, ll ri, ll first) {     return le <= first && first <= ri;   }   signed main() {     ios::sync_with_stdio(0);     cin.tie(0);     ll n;     cin >> n;     for (ll i = 1; i <= n; i++) cin >> A[i];     ll res = 0;     for (ll bit = 0; bit <= 24; bit++) {       memcpy(B, A, sizeof(ll) * (n + 5));       ll mask = (1 << (bit + 1)) - 1;       for (ll i = 1; i <= n; i++) {         B[i] &= mask;       }       sort(B + 1, B + n + 1);       ll cnt = 0;       for (ll i = 1; i <= n; i++) {         cnt += (upper_bound(B + 1, B + n + 1, (1 << bit + 1) - 1 - B[i]) - B) -                (lower_bound(B + 1, B + n + 1, (1 << bit) - B[i]) - B);         if ((1 << bit) - B[i] <= B[i] && B[i] <= (1 << bit + 1) - 1 - B[i]) --cnt;         cnt +=             (upper_bound(B + 1, B + n + 1, (1 << bit + 2) - 2 - B[i]) - B) -             (lower_bound(B + 1, B + n + 1, (1 << bit) + (1 << bit + 1) - B[i]) -              B);         if (((1 << bit) + (1 << bit + 1)) - B[i] <= B[i] &&             B[i] <= (1 << bit + 2) - 2 - B[i])           --cnt;       }       assert(cnt % 2 == 0);       cnt /= 2;       if (cnt & 1) res |= (1 << bit);     }     cout << res <<   n ;     return 0;   }   