#include<algorithm>
#include<iostream>
#include<string.h>
#include<string>
#include<vector>
#include<math.h>
#include<map>
#include<set>
using namespace std;
#define mod 998244353
#define ll long long
#define N 24
#define maxn 200005
void solve(){
int n,q;
cin>>n>>q;
int a[n+5],xr[n+5];
xr[0]=0;
for(int i=1; i<=n; i++){
cin>>a[i];
if(i<=2){
xr[i]=a[i];
}else{
xr[i]=xr[i-2]^a[i];
}
}
for(int i=1; i<=q; i++){
int x,y,z;
cin>>x>>y>>z;
if(x==1){
xr[y]=xr[y]^a[y];
a[y]=z;
xr[y]=xr[y]^a[y];
y+=2;
while(y<=n){
xr[y]=xr[y-2]*a[y];
y+=2;
}
}else{
if((y-z+1)%2==0){
cout<<0<<'\n';
}else{
if(y<=2){
cout<<xr[z]<<'\n';
}else{
int ans=xr[z];
ans=ans^xr[y-2];
cout<<ans<<'\n';
}
}
}
}
}
int main(){
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... |