제출 #1188452

#제출 시각아이디문제언어결과실행 시간메모리
1188452andrei_nXORanges (eJOI19_xoranges)C++20
100 / 100
51 ms3144 KiB
#include <bits/stdc++.h> using namespace std; int n; int aib1[200005],aib2[200005]; int query(int p) { int *aib = (p&1 ? aib1 : aib2); int res = 0; for(; p>0; p ^= (p&-p)) { res ^= aib[p]; } return res; } void update(int p, int x) { x ^= (query(p) ^ query(p-2)); int *aib = (p&1 ? aib1 : aib2); for(; p<=n; p += (p&-p)) aib[p] ^= x; } signed main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int q; cin>>n>>q; for(int i=1; i<=n; ++i) { int x; cin>>x; update(i,x); } while(q--) { int t,a,b; cin>>t>>a>>b; if(t == 1) update(a,b); else { if((b-a) & 1) cout<<"0\n"; else cout<<(query(b) ^ query(a - 2))<<'\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...