Submission #1308446

#TimeUsernameProblemLanguageResultExecution timeMemory
1308446mxhrvsXOR Sum (info1cup17_xorsum)C++20
0 / 100
1695 ms8264 KiB
#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int n; cin >> n; vector<int> v(n); for (int i = 0; i < n; ++i) { cin >> v[i]; } long long ans = 0; for (int k = 0; k < 28; ++k) { int mod = 1 << (k + 1); int lower_bound_bit = 1 << k; vector<int> current_bits(n); for (int i = 0; i < n; ++i) { current_bits[i] = v[i] % mod; } sort(current_bits.begin(), current_bits.end()); long long count = 0; for (int i = 0; i < n; ++i) { int x = current_bits[i]; int l1 = lower_bound_bit - x; int r1 = (2 * lower_bound_bit) - 1 - x; count += lower_bound(current_bits.begin() + i, current_bits.end(), r1 + 1) - lower_bound(current_bits.begin() + i, current_bits.end(), l1); int l2 = (3 * lower_bound_bit) - x; int r2 = (4 * lower_bound_bit) - 1 - x; count += lower_bound(current_bits.begin() + i, current_bits.end(), r2 + 1) - lower_bound(current_bits.begin() + i, current_bits.end(), l2); } if (count % 2 == 1) { ans |= (1LL << k); } } cout << ans << endl; 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...