#include <bits/stdc++.h>
using namespace std;
const int N=2e5+5;
int n,request,mx_bit,type,x,y;
int a[N],bit[N][2];
void fenwick_update(int u,int v)
{
bool le=u&1;
for (int idx=u;idx<=mx_bit;idx+=idx&-idx)
bit[idx][le]^=v;
}
int fenwick_get(int u)
{
bool le=u&1;
int ans=0;
for (int idx=u;idx>0;idx-=idx&-idx)
ans^=bit[idx][le];
return ans;
}
int main()
{
ios_base::sync_with_stdio(NULL);
cin.tie(NULL); cout.tie(NULL);
cin >> n >> request;
mx_bit=n;
for (int i=1;i<=n;i++)
{
cin >> a[i];
fenwick_update(i,a[i]);
}
while (request--)
{
cin >> type >> x >> y;
if (type==1)
{
fenwick_update(x,y^a[x]);
a[x]=y;
}
else
{
if ((y-x+1)&1) cout << (fenwick_get(y)^fenwick_get(x-2)) << '\n';
else cout << 0 << '\n';
}
}
}
| # | 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... |