#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); cout.tie(0);
cin >> n >> q;
for (int i = 1; i <= n; i++) {
cin >> k[i];
}
for (int i = 1; i <= n; 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];
}
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... |