#include <iostream>
using namespace std;
#define endl '\n'
long long n, q, k[200005], res, op, l, u, prefix[200005], prefix1[200005];
int main() {
ios_base::sync_with_stdio(0); cin.tie(0);
cin >> n >> q;
for (int i = 1; i <= n; i++) {
cin >> k[i];
if (i % 2 == 1) prefix1[i] = (prefix1[i - 2] ^ k[i]);
else prefix[i] = (prefix[i - 2] ^ k[i]);
}
for (int i = 1; i <= q; i++) {
cin >> op >> l >> u;
if (op == 1) {
k[l] = u;
for (int j = l; j <= n; j++) {
if (j % 2 == 1) prefix1[j] = (prefix1[j - 2] ^ k[j]);
else prefix[j] = (prefix[j - 2] ^ k[j]);
}
} else {
res = 0;
if (l % 2 == 0 && u % 2 == 0) res = prefix[u] ^ prefix[l - 2];
else if (l % 2 == 1 && u % 2 == 1) res = prefix1[u] ^ prefix[l - 2];
else res = 0; // коли л і р різні за парністю
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... |