Submission #1249881

#TimeUsernameProblemLanguageResultExecution timeMemory
1249881PetrixXORanges (eJOI19_xoranges)C++20
100 / 100
60 ms6216 KiB
#include <iostream> using namespace std; #define int long long int aib[2][200001]; int v[200001],n; void update(int ind,int poz,int a){ while(poz<=n){ aib[ind][poz]^=a; poz+=(poz&-poz); } } int query(int ind,int poz){ int rasp=0; while(poz>0){ rasp^=aib[ind][poz]; poz-=(poz&-poz); } return rasp; } signed main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int i,q,cer,a,b; cin>>n>>q; for(i=1;i<=n;i++){ cin>>v[i]; update(i%2,i,v[i]); } while(q--){ cin>>cer>>a>>b; if(cer==1){ update(a%2,a,b^v[a]); v[a]=b; }else{ if((b-a+1)%2==0) cout<<"0\n"; else cout<<(int)(query(b%2,b)^query(a%2,a-1))<<"\n"; } } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...