Submission #1304683

#TimeUsernameProblemLanguageResultExecution timeMemory
1304683ToniBXORanges (eJOI19_xoranges)C++20
100 / 100
61 ms4560 KiB
#include <bits/stdc++.h> using namespace std; const int N = 2e5 + 2; struct Fenwick { int val[N] = {0}; void add(int i, int x) { for (++i; i < N; i += i & -i) { val[i] ^= x; } } int get(int i) { int ret = 0; for (++i; i; i -= i & -i) { ret ^= val[i]; } return ret; } int get(int l, int r) { if (l) return get(r) ^ get(l - 1); return get(r); } } fen[2]; int n, q, a[N]; int main() { ios_base::sync_with_stdio(false); cin.tie(0); cin >> n >> q; for (int i = 0; i < n; ++i) { cin >> a[i]; fen[i & 1].add(i >> 1, a[i]); } while (q--) { int t, x, y; cin >> t >> x >> y; if (t == 1) { --x; fen[x & 1].add(x >> 1, a[x] ^ y); a[x] = y; } else { --x, --y; if ((x - y) & 1) { cout << "0\n"; } else { cout << fen[y & 1].get(x >> 1, y >> 1) << "\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...