#include "bits/stdc++.h"
using namespace std;
#define mod 998244353
#define ll long long
#define ff first
#define ss second
#define pb push_back
#define N 24
#define maxn 200005
int b[4*maxn][2];
void upd(int nd,int l,int r,int e,int val,int x){
if(l>e or r<e) return;
if(l==r){
b[nd][x]=val;
return;
}
int md=(l+r)/2;
upd(nd*2,l,md,e,val,x);
upd(nd*2+1,md+1,r,e,val,x);
b[nd][x]=b[nd*2][x]^b[nd*2+1][x];
}
int get(int nd,int l,int r,int e,int x){
if(l>e) return 0;
if(r<=e) return b[nd][x];
int md=(l+r)/2;
return get(nd*2,l,md,e,x)^get(nd*2+1,md+1,r,e,x);
}
void solve(){
int n,q;
cin>>n>>q;
int a[n+5];
for(int i=1; i<=n; i++) cin>>a[i];
for(int i=1; i<=n; i++){
upd(1,1,maxn,(i+1)/2,a[i],i%2);
}
for(int i=1; i<=q; i++){
int x;
cin>>x;
if(x==1){
int x,val;
cin>>x>>val;
upd(1,1,maxn,(x+1)/2,val,x%2);
}else{
int l,r;
cin>>l>>r;
if((r-l+1)%2==0){
cout<<0<<'\n';
continue;
}
int ans=get(1,1,maxn,(r+1)/2,r%2)^get(1,1,maxn,(l-1)/2,r%2);
cout<<ans<<'\n';
}
}
}
int main(){
// freopen("in.txt","w",stdout);
// freopen("out.txt","r",stdin);
ios_base::sync_with_stdio(0); cin.tie(0);
ll t=1;
// cin>>t;
while(t--) solve();
}
# | 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... |