| Task: | Xor sum |
| Sender: | aalto26dm_047 |
| Submission time: | 2026-09-21 16:44:17 +0300 |
| Language: | C++ (C++20) |
| Status: | COMPILE ERROR |
Compiler report
input/code.cpp: In function 'int xor_sum(int, int)':
input/code.cpp:31:15: error: expected ';' before '}' token
31 | return axb
| ^
| ;
32 | }
| ~Code
#include <bits/stdc++.h>
using namespace std;
int xor_sum(int a,int b){
int axb;
int count = 0;
while (a>0 && b>0){
if (a%2 ==1){
if (b%2 == 0){
axb += 2^count;
b /=2;
}
else{
b= (b-1)/2;
}
a = (a-1)/2;
}
else{
if (b%2 == 1){
axb += 2^count;
b = (b-1)/2;
}
else{
b /=2;
}
a = a/2;
}
count++;
}
return axb
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int n, q;
cin >> n >> q;
vector<int> tree(2 * n);
for (int i = 0; i < n; i++) {
cin >> tree[n + i];
}
for (int i = n - 1; i > 0; --i) {
tree[i] = xor_sum(tree[2 * i],tree[2 * i + 1]);
}
for (int i =0; i<q; i++){
int a;
int b;
cin>>a>>b;
a--;b--;
a += n; b += n;
int s = 0;
while (a <= b) {
if (a%2 == 1) s = xor_sum(s,tree[a++]);
if (b%2 == 0) s = xor_sum(s,tree[b--]);
a /= 2; b /= 2;
}
cout<<s<< "\n";
}
}