Submission #1265197

#TimeUsernameProblemLanguageResultExecution timeMemory
1265197PlayVoltzXORanges (eJOI19_xoranges)C++20
100 / 100
58 ms6216 KiB
#include <cstdio> #include <stdio.h> #include <stdbool.h> #include <iostream> #include <map> #include <vector> #include <climits> #include <stack> #include <string> #include <queue> #include <algorithm> #include <set> #include <unordered_set> #include <unordered_map> #include <cmath> #include <cctype> #include <bitset> #include <iomanip> #include <cstring> #include <numeric> #include <cassert> using namespace std; #define int long long #define pii pair<int, int> #define mp make_pair #define pb push_back #define fi first #define se second struct fen{ int n; vector<int> ft; fen(int N){ n=N; ft.resize(n+1, 0); } void up(int i, int v){ for (;i<=n;i+=i&-i)ft[i]^=v; } int sum(int i){ int res=0; for (;i;i-=i&-i)res^=ft[i]; return res; } int query(int l, int r){ return sum(r)^sum(l-1); } }*ft[2]; int32_t main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, q, a, b, c; cin>>n>>q; vector<int> vect(n+1); ft[0] = new fen(n); ft[1] = new fen(n); for (int i=1; i<=n; ++i)cin>>vect[i], ft[i%2]->up(i, vect[i]); while (q--){ cin>>a>>b>>c; if (a==1)ft[b%2]->up(b, vect[b]), vect[b]=c, ft[b%2]->up(b, vect[b]); else if ((c-b+1)%2)cout<<ft[c%2]->query(b, c)<<"\n"; else cout<<"0\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...