제출 #1280274

#제출 시각아이디문제언어결과실행 시간메모리
1280274akmuhammet_sXORanges (eJOI19_xoranges)C++20
100 / 100
115 ms4564 KiB
#include "bits/stdc++.h" using namespace std; #define mod 998244353 #define ll long long #define ff first #define ss second #define pb push_back #define N 24 #define maxn 200005 int b[4*maxn][2]; void upd(int nd,int l,int r,int e,int val,int x){ if(l>e or r<e) return; if(l==r){ b[nd][x]=val; return; } int md=(l+r)/2; upd(nd*2,l,md,e,val,x); upd(nd*2+1,md+1,r,e,val,x); b[nd][x]=b[nd*2][x]^b[nd*2+1][x]; } int get(int nd,int l,int r,int e,int x){ if(l>e) return 0; if(r<=e) return b[nd][x]; int md=(l+r)/2; return get(nd*2,l,md,e,x)^get(nd*2+1,md+1,r,e,x); } void solve(){ int n,q; cin>>n>>q; int a[n+5]; for(int i=1; i<=n; i++) cin>>a[i]; for(int i=1; i<=n; i++){ upd(1,1,maxn,(i+1)/2,a[i],i%2); } for(int i=1; i<=q; i++){ int x; cin>>x; if(x==1){ int x,val; cin>>x>>val; upd(1,1,maxn,(x+1)/2,val,x%2); }else{ int l,r; cin>>l>>r; if((r-l+1)%2==0){ cout<<0<<'\n'; continue; } int ans=get(1,1,maxn,(r+1)/2,r%2)^get(1,1,maxn,(l-1)/2,r%2); cout<<ans<<'\n'; } } } int main(){ // freopen("in.txt","w",stdout); // freopen("out.txt","r",stdin); ios_base::sync_with_stdio(0); cin.tie(0); ll t=1; // cin>>t; while(t--) solve(); }
#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...