#include <bits/stdc++.h>
using namespace std;
int n;
int aib1[200005],aib2[200005];
int query(int p)
{
int *aib = (p&1 ? aib1 : aib2);
int res = 0;
for(; p>0; p ^= (p&-p))
{
res ^= aib[p];
}
return res;
}
void update(int p, int x)
{
x ^= (query(p) ^ query(p-2));
int *aib = (p&1 ? aib1 : aib2);
for(; p<=n; p += (p&-p))
aib[p] ^= x;
}
signed main()
{
ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
int q; cin>>n>>q;
for(int i=1; i<=n; ++i)
{
int x; cin>>x;
update(i,x);
}
while(q--)
{
int t,a,b; cin>>t>>a>>b;
if(t == 1)
update(a,b);
else
{
if((b-a) & 1)
cout<<"0\n";
else
cout<<(query(b) ^ query(a - 2))<<'\n';
}
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |