Submission #1221648

#TimeUsernameProblemLanguageResultExecution timeMemory
1221648mayacXORanges (eJOI19_xoranges)C++20
75 / 100
1095 ms4776 KiB
#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){ t=b; b=b^v[a]; if(a%2==0){ for(int i=a+1;i<=n;i+=2){ yesno0[i]^=b; } } else{ for(int i=a+1;i<=n;i+=2){ yesno1[i]^=b; } } v[a]=t; }else{ if((b-a)%2==1){ if(a%2==1){ cout<<(yesno1[a-1]^yesno1[b]); }else{ if(a>0){ cout<<(yesno0[a-1]^yesno0[b]); }else{ cout<<yesno0[b]; } } } else{ cout<<0; } cout<<"\n"; } } }
#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...