#include <iostream>
using namespace std;
unsigned int o[200100];
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n, q; cin >> n >> q;
for (int i = 0; i < n; i++) cin >> o[i];
for (int it = 0; it < q; it++) {
int code; cin >> code;
if (code == 1) {
int i; cin >> i >> o[--i];
} else {
int l, u; cin >> l >> u;
if (!((u - l + 1) & 1)) {
cout << 0 << endl;
continue;
}
unsigned int res1 = 0, res2 = 0, res3 = 0, res4 = 0, res5 = 0, res6 = 0, res7 = 0, res8 = 0;
int i = l - 1;
for (; i < u; i += 16) {
res1 ^= o[i + 0 ];
res2 ^= o[i + 2 ];
res3 ^= o[i + 4 ];
res4 ^= o[i + 6 ];
res5 ^= o[i + 8 ];
res6 ^= o[i + 10];
res7 ^= o[i + 12];
res8 ^= o[i + 14];
}
if (i - 2 >= u) res1 ^= o[i - 2 ];
if (i - 4 >= u) res1 ^= o[i - 4 ];
if (i - 6 >= u) res1 ^= o[i - 6 ];
if (i - 8 >= u) res1 ^= o[i - 8 ];
if (i - 10 >= u) res1 ^= o[i - 10];
if (i - 12 >= u) res1 ^= o[i - 12];
if (i - 14 >= u) res1 ^= o[i - 14];
cout << (((res1 ^ res2) ^ (res3 ^ res4)) ^ ((res5 ^ res6) ^ (res7 ^ res8))) << endl;
}
}
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
212 KB |
Output is correct |
2 |
Correct |
0 ms |
212 KB |
Output is correct |
3 |
Correct |
1 ms |
212 KB |
Output is correct |
4 |
Correct |
0 ms |
212 KB |
Output is correct |
5 |
Correct |
1 ms |
212 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
212 KB |
Output is correct |
2 |
Correct |
1 ms |
212 KB |
Output is correct |
3 |
Correct |
1 ms |
212 KB |
Output is correct |
4 |
Correct |
1 ms |
212 KB |
Output is correct |
5 |
Correct |
1 ms |
212 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
212 KB |
Output is correct |
2 |
Correct |
0 ms |
212 KB |
Output is correct |
3 |
Correct |
1 ms |
212 KB |
Output is correct |
4 |
Correct |
0 ms |
212 KB |
Output is correct |
5 |
Correct |
1 ms |
212 KB |
Output is correct |
6 |
Correct |
1 ms |
212 KB |
Output is correct |
7 |
Correct |
1 ms |
212 KB |
Output is correct |
8 |
Correct |
1 ms |
212 KB |
Output is correct |
9 |
Correct |
1 ms |
212 KB |
Output is correct |
10 |
Correct |
1 ms |
212 KB |
Output is correct |
11 |
Correct |
4 ms |
368 KB |
Output is correct |
12 |
Correct |
4 ms |
340 KB |
Output is correct |
13 |
Correct |
7 ms |
340 KB |
Output is correct |
14 |
Correct |
7 ms |
368 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
868 ms |
2264 KB |
Output is correct |
2 |
Correct |
856 ms |
2228 KB |
Output is correct |
3 |
Correct |
862 ms |
2280 KB |
Output is correct |
4 |
Execution timed out |
1071 ms |
1740 KB |
Time limit exceeded |
5 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
212 KB |
Output is correct |
2 |
Correct |
0 ms |
212 KB |
Output is correct |
3 |
Correct |
1 ms |
212 KB |
Output is correct |
4 |
Correct |
0 ms |
212 KB |
Output is correct |
5 |
Correct |
1 ms |
212 KB |
Output is correct |
6 |
Correct |
1 ms |
212 KB |
Output is correct |
7 |
Correct |
1 ms |
212 KB |
Output is correct |
8 |
Correct |
1 ms |
212 KB |
Output is correct |
9 |
Correct |
1 ms |
212 KB |
Output is correct |
10 |
Correct |
1 ms |
212 KB |
Output is correct |
11 |
Correct |
4 ms |
368 KB |
Output is correct |
12 |
Correct |
4 ms |
340 KB |
Output is correct |
13 |
Correct |
7 ms |
340 KB |
Output is correct |
14 |
Correct |
7 ms |
368 KB |
Output is correct |
15 |
Correct |
868 ms |
2264 KB |
Output is correct |
16 |
Correct |
856 ms |
2228 KB |
Output is correct |
17 |
Correct |
862 ms |
2280 KB |
Output is correct |
18 |
Execution timed out |
1071 ms |
1740 KB |
Time limit exceeded |
19 |
Halted |
0 ms |
0 KB |
- |