#include <iostream>
#include <vector>
#include <queue>
using namespace std;
int main(){
int n,q,a,b,t,ans;
cin>>n>>q;
vector<int> v(n),vxor(n+1,0),yesno0(n+1,0),yesno1(n+1,0);
for(int i=0;i<n;i++){
cin>>v[i];
vxor[i+1]=vxor[i]^v[i];
if(i%2==0){
yesno0[i+1]=v[i];
if(i>0)yesno0[i+1]=v[i]^yesno0[i-1];
}else{
yesno1[i+1]=v[i];
yesno1[i+1]=v[i]^yesno1[i-1];
}
}
while(q--){
cin>>t>>a>>b;a--;
if(t==1){
v[a]=b;
}else{
ans=0;
if((a-b+1)%4==0){
for(int i=a;i<b;i+=2){
ans=ans^v[i];
}
}else if(a-b%2==1){
for(int i=a;i<b;i++){
ans=ans^v[i];
}
}
cout<<ans<<"\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... |