Submission #638752

#TimeUsernameProblemLanguageResultExecution timeMemory
638752Koful123XORanges (eJOI19_xoranges)C++17
100 / 100
97 ms10788 KiB
#include <bits/stdc++.h> using namespace std; #define pb push_back #define ff first #define ss second #define endl "\n" #define mod 1000000007 #define int long long #define double long double #define all(x) (x).begin(), (x).end() #define rall(x) (x).rbegin(), (x).rend() struct Fenwick{ int n; vector<int> fw; Fenwick(int _n){ fw.assign(n = _n+1,0); } void upd(int pos,int val){ while(pos <= n){ fw[pos] ^= val; pos += (pos & -pos); } } int get(int pos){ int res = 0; while(pos > 0){ res ^= fw[pos]; pos -= (pos & -pos); } return res; } }; void solve(){ int n,q; cin >> n >> q; Fenwick odd(n),even(n); vector<int> v(n+1); for(int i=1;i<=n;i++){ cin >> v[i]; if(i % 2) odd.upd(i,v[i]); else even.upd(i,v[i]); } for(int i=0;i<q;i++){ int ty,a,b; cin >> ty >> a >> b; if(ty == 1){ if(a % 2) odd.upd(a,v[a]),odd.upd(a,b); else even.upd(a,v[a]),even.upd(a,b); v[a] = b; } else{ if((b-a+1) % 2){ if(a % 2) cout << (odd.get(b) ^ odd.get(a-2)) << endl; else cout << (even.get(b) ^ even.get(a-2)) << endl; } else cout << 0 << endl; } } } signed main(){ ios::sync_with_stdio(0); cin.tie(0); int t = 1; //cin >> t; while(t--) solve(); 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...