#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |