제출 #1150798

#제출 시각아이디문제언어결과실행 시간메모리
1150798sunnatXOR Sum (info1cup17_xorsum)C++20
0 / 100
560 ms4328 KiB
#include <algorithm> #include <iostream> #include <vector> using namespace std; int main(){ int n; cin >> n; vector<int> a(n); for(int i = 0; i < n; ++ i){ cin >> a[i]; } int res = 0, k, v; for(int i = 30; i >= 0; -- i){ sort(a.rbegin(), a.rend()); k = 0; for(int j = 0, p = n - 1, q = 0, w = n - 1; j < n; ++ j){ if((a[j]>>i) & 1){ v = (1<<(i+1))-a[j] - 1; p = max(p, j); while(p >= j && a[p] <= v) -- p; k += (n - p - 1) & 1; v = (3<<i) - a[j]; q = max(q, j); while(q < n && a[q] >= v) ++ q; k += (q - j) & 1; a[j] ^= 1<<i; } else{ v = (1<<i) - a[j]; w = max(w, j); while(w >= j && a[w] < v) -- w; k += (w - j + 1) & 1; } } if(k & 1) res |= 1<<i; } cout << res << '\n'; 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...