| Task: | Xor sum |
| Sender: | Aurelien |
| Submission time: | 2025-09-22 16:20:14 +0300 |
| Language: | C++ (C++17) |
| Status: | READY |
| Result: | ACCEPTED |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.00 s | details |
| #2 | ACCEPTED | 0.55 s | details |
Code
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main() {
ll n, q;
cin >> n;
cin >> q;
ll val[2*n] = {0};
for(ll i = 0; i < n; i++) {
cin >> val[n+i];
}
for(ll i = 0; i<n-1; i++) {
val[n-i-1] = val[2*n - i*2 -2] xor val[2*n - i*2 -1];
}
// for(ll i = 0; i < 2*n; i++) {
// cout << val[i] << " ";
// }
// cout << endl;
ll a,b;
ll result[q];
ll result_id = 0;
for(ll q_id = 0; q_id < q; q_id++){
cin >> a;
cin >> b;
a += n-1; b += n-1;
ll s = 0;
while (a <= b) {
if (a%2 == 1) s = s xor val[a++];
if (b%2 == 0) s = s xor val[b--];
a /= 2; b /= 2;
}
result[result_id] = s;
result_id++;
}
for(ll i = 0; i < result_id; i++) {
cout << result[i] << endl;
}
}Test details
Test 1
Verdict: ACCEPTED
| input |
|---|
| 8 36 7 6 4 6 2 9 4 8 1 1 1 2 1 3 ... |
| correct output |
|---|
| 7 1 5 3 1 ... |
| user output |
|---|
| 7 1 5 3 1 ... |
Test 2
Verdict: ACCEPTED
| input |
|---|
| 200000 200000 921726510 307633388 992247073 ... |
| correct output |
|---|
| 834756431 130379787 403037296 308618218 784778243 ... |
| user output |
|---|
| 834756431 130379787 403037296 308618218 784778243 ... Truncated |
