Submission #1049026

#TimeUsernameProblemLanguageResultExecution timeMemory
1049026NickpapadakXORanges (eJOI19_xoranges)C++14
75 / 100
1052 ms4692 KiB
#include<bits/stdc++.h> using namespace std; const unsigned int MAXN = 2e+5 + 10; bool mp[MAXN]; int pf[MAXN], pf1[MAXN],pf2[MAXN], a[MAXN]; int N, Q; int main(){ scanf("%d%d",&N,&Q); // mp.resize(N+1, 0); for(int i = 1; i<=N;++i){ scanf("%d",&a[i]); pf[i] = pf[i-1] ^ a[i]; // mp[i] = 0; } pf1[1] = a[1]; for(int i = 1; i<=N; i++){ pf1[i] = pf1[i-1] ^ a[i*2-1]; } for(int i = 1; i<=N >> 1; i++){ pf2[i] = pf2[i-1] ^ a[i*2]; } while(Q--){ int s,b, type; scanf("%d%d%d", &type, &s, &b); if(type == 2){ int ans = 0; // for(int i = 1; i <= b-s+1; ++i){ // for(int j = s; j+i-1 <= b;++j){ // ans ^= (pf[j+i-1] ^ pf[j-1]); // // changemp(j+i-1); // // changemp(j+i-1); // for(int k = j; k <= j+i-1; ++k) mp[k] = !mp[k]; // // mp[j+i-1] = !mp[j+i-1]; // // mp[j-1] = !mp[j-1]; // } // } if((b-s+1) % 2 == 1){ if(s % 2 == 1) ans = pf1[(b >> 1)+1] ^ pf1[(s >> 1)]; else ans = pf2[b >> 1] ^ pf2[(s >> 1)-1]; } // for(int i = 1; i<=N;++i){ // printf("[%d]", i); // } // printf("\n"); // for(int i = 1; i<=N;++i){ // printf(" %d ", mp[i]); // mp[i] = 0; // } // printf("\n"); printf("%d\n", ans); // } }else{ a[s] = b; // pf1[1] = a[1]; if(s % 2 == 1){ for(int i = 1; i<=N; i++){ pf1[i] = pf1[i-1] ^ a[i*2-1]; } } else{ for(int i = 1; i<=N >> 1; i++){ pf2[i] = pf2[i-1] ^ a[i*2]; } } } // for(int i = s; i<=N;++i){ // pf[i] = pf[i-1] ^ a[i]; // } // } } return 0; }

Compilation message (stderr)

xoranges.cpp: In function 'int main()':
xoranges.cpp:8:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
    8 |     scanf("%d%d",&N,&Q);
      |     ~~~~~^~~~~~~~~~~~~~
xoranges.cpp:11:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   11 |         scanf("%d",&a[i]);
      |         ~~~~~^~~~~~~~~~~~
xoranges.cpp:24:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   24 |         scanf("%d%d%d", &type, &s, &b);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
#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...