Submission #1067640

#TimeUsernameProblemLanguageResultExecution timeMemory
1067640raduvXORanges (eJOI19_xoranges)C++14
100 / 100
33 ms3932 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...