Submission details
Task:Xor sum
Sender:Aurelien
Submission time:2025-09-22 16:20:14 +0300
Language:C++ (C++17)
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.00 sdetails
#2ACCEPTED0.55 sdetails

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