Submission #1179645

#TimeUsernameProblemLanguageResultExecution timeMemory
1179645mishasimXORanges (eJOI19_xoranges)C++20
55 / 100
1095 ms3712 KiB
#include <iostream> using namespace std; #define endl '\n' const int MAXN = 200005; int n, q; long long a[MAXN]; long long BIT[MAXN]; // Fenwick Tree void update(int idx, long long val) { while (idx <= n) { BIT[idx] ^= val; idx += idx & -idx; } } long long query(int idx) { long long res = 0; while (idx > 0) { res ^= BIT[idx]; idx -= idx & -idx; } return res; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> n >> q; for (int i = 1; i <= n; i++) { cin >> a[i]; update(i, a[i]); } while (q--) { int op, l, r; cin >> op >> l >> r; if (op == 1) { update(l, a[l]); // прибираємо старе значення a[l] = r; update(l, a[l]); // додаємо нове } else { long long res = 0; for (int i = l; i <= r; i++) { long long count = 1LL * (i - l + 1) * (r - i + 1); if (count % 2 == 1) { res ^= a[i]; } } cout << res << endl; } } 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...