이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <iostream>
using namespace std;
const int nmax = 2e5;
int v[nmax + 1];
int aib[2][nmax + 1];
int n;
void update ( int p, int poz, int val ) {
for ( ; poz <= n; poz += poz & -poz )
aib[p][poz] ^= val;
}
int query ( int p, int poz ) {
int rez = 0;
for ( ; poz > 0; poz -= poz & -poz )
rez ^= aib[p][poz];
return rez;
}
int main () {
int q, t, x, y;
cin >> n >> q;
for ( int i = 1; i <= n; i++ ) {
cin >> v[i];
update ( i % 2, i, v[i] );
}
for ( int i = 1; i <= q; i++ ) {
cin >> t >> x >> y;
if ( t == 1 ) {
update ( x % 2, x, y ^ v[x] );
v[x] = y;
} else {
if ( x % 2 == y % 2 )
cout << ( query ( x % 2, x - 1 ) ^ query ( y % 2, y ) ) << '\n';
else
cout << 0 << '\n';
}
}
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... |