This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <stdio.h>
#include <ctype.h>
#pragma GCC optimize("Ofast,unroll-loops,inline-functions")
#pragma GCC target("avx2")
#pragma unroll
#pragma loop(ivdep)
#pragma ivdep
#pragma omp parallel for
#pragma HLS pipeline
#pragma clang loop unroll(full)
#pragma inline
#pragma vector always
#pragma STDC FP_CONTRACT ON
#pragma acc kernels
#pragma auto_inline(on)
#pragma prefetch
const int MAXN = 2e5;
using namespace std;
int aib[2][MAXN + 1];
int v[MAXN + 1];
void update(int poz, int x, int n){
int i;
for( i = poz; i <= n; i += i & -i){
aib[poz & 1][i] ^= x;
}
}
int query(int poz, int par){
int rez = 0, i;
for( i = poz; i > 0; i = (i & (i - 1))){
rez ^= aib[par][i];
}
return rez;
}
static inline int getInt(){
int n = 0, ch;
while(!isdigit(ch = getc(stdin)));
do
n = n * 10 + ch - '0';
while (isdigit(ch = getc(stdin)));
return n;
}
int main(){
int n, q, i, op, l, r;
n = getInt();
q = getInt();
for( i = 1; i <= n; i++ ){
v[i] = getInt();
update(i, v[i], n);
}
for( i = 0; i < q; i++ ){
op = getInt();
l = getInt();
r = getInt();
if(op == 1){
update(l, v[l] ^ r, n);
v[l] = r;
}
else{
if( (r - l) & 1 ){
printf("0\n");
}
else{
printf("%d\n", query(r, r & 1) ^ query(l - 1, l & 1));
}
}
}
return 0;
}
Compilation message (stderr)
xoranges.cpp:5: warning: ignoring '#pragma unroll ' [-Wunknown-pragmas]
5 | #pragma unroll
|
xoranges.cpp:6: warning: ignoring '#pragma loop ' [-Wunknown-pragmas]
6 | #pragma loop(ivdep)
|
xoranges.cpp:7: warning: ignoring '#pragma ivdep ' [-Wunknown-pragmas]
7 | #pragma ivdep
|
xoranges.cpp:8: warning: ignoring '#pragma omp parallel' [-Wunknown-pragmas]
8 | #pragma omp parallel for
|
xoranges.cpp:9: warning: ignoring '#pragma HLS pipeline' [-Wunknown-pragmas]
9 | #pragma HLS pipeline
|
xoranges.cpp:10: warning: ignoring '#pragma clang loop' [-Wunknown-pragmas]
10 | #pragma clang loop unroll(full)
|
xoranges.cpp:11: warning: ignoring '#pragma inline ' [-Wunknown-pragmas]
11 | #pragma inline
|
xoranges.cpp:12: warning: ignoring '#pragma vector always' [-Wunknown-pragmas]
12 | #pragma vector always
|
xoranges.cpp:13: warning: ignoring '#pragma STDC FP_CONTRACT' [-Wunknown-pragmas]
13 | #pragma STDC FP_CONTRACT ON
|
xoranges.cpp:14: warning: ignoring '#pragma acc kernels' [-Wunknown-pragmas]
14 | #pragma acc kernels
|
xoranges.cpp:15: warning: ignoring '#pragma auto_inline ' [-Wunknown-pragmas]
15 | #pragma auto_inline(on)
|
xoranges.cpp:16: warning: ignoring '#pragma prefetch ' [-Wunknown-pragmas]
16 | #pragma prefetch
|
# | 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... |