Submission #749024

#TimeUsernameProblemLanguageResultExecution timeMemory
749024LucaLucaMXOR Sum (info1cup17_xorsum)C++17
0 / 100
185 ms8832 KiB
#include <bits/stdc++.h> using namespace std; const int NMAX = 1e6; int a[NMAX + 5]; /** cate perechi (i, j) exista astfel incat a[i] + a[j] au bitul B setat (1 << bt) <= a[i] + a[j] < (1 << (bt + 1)) **/ int n; bool solve (int bt) { bool ans = 0; for (int i=1, j=n; i<=n; i++) { j = (j < i? i : j); while (j >= i && a[i] + a[j] >= (1 << bt)) j--; ans ^= (n - j) & 1; } return ans; } int main() { ios_base::sync_with_stdio(false); cin.tie(0); cin >> n; for (int i=1; i<=n; i++) { cin >> a[i]; } sort(a+1, a+n+1); bool prv = 0; int ans = 0; for (int bt=29; bt>=0; bt--) { bool cur = solve(bt); if (cur != prv) { ans |= (1 << bt); prv = cur; } } cout << ans; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...