#include <bits/stdc++.h>
#define ll long long
#define pb(a) push_back(a)
#define in(a) insert(a)
#define lldef ll N=0,M=0,K=0,ans=0,sum=0; string s="";
#define loop(valuename,startvalue,endvalue,changevalue) for(ll valuename=startvalue; valuename<endvalue; valuename+=changevalue)
#define rloop(valuename,startvalue,endvalue,changevalue) for(ll valuename=startvalue-1; valuename>=endvalue; valuename-=changevalue)
#define mk make_pair
#define begin begin()
#define end end()
#define db long double
using namespace std;
const int SIZE=1e5+69;
const int MOD=1e9+7;
/*
vector<vector<ll>>ADJ(SIZE);
vector<ll>vis(SIZE,0);
void dfs(ll vertex){
vis[vertex]=true;
for(auto it:ADJ[vertex]){
if(!vis[it]){
dfs(it);
}
}
}
*/
bool Ptwo(ll N){
return (~N&N-1)==N-1;
}
ll l=0;
inline void test_case(){
lldef;
cin>>N>>M;
vector<ll>V;
loop(i,0,N,1){
ll x;
cin>>x;
V.pb(x);
}
loop(i,0,M,1){
ll a,b,c;
cin>>a>>b>>c;
if(a==2){
ll ans1=0;
loop(j,b,c+1,1){
if((j-b+1)*(c-j+1)%2==1){
ans1=ans1^V[j-1];
//cout<<j<<" "<<V[j-1]<<endl;
}
}
cout<<ans1<<endl;
}else{
V[b-1]=c;
}
}
}
int main(){
ll t=1;
//cin>>t;
while(t--) {test_case(); l++;}
}
# | 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... |