Submission #609103

#TimeUsernameProblemLanguageResultExecution timeMemory
609103AliHasanliXORanges (eJOI19_xoranges)C++17
100 / 100
139 ms8652 KiB
#include <bits/stdc++.h> using namespace std; const int MAX = 200001; int t[2][MAX]; int arr[MAX]; void inc(int id, int i, int dx) { for (; i < MAX; i |= i + 1) { t[id][i] ^= dx; } } int sum(int id, int i) { int res = 0; for (; i > 0; i = (i & (i + 1)) - 1) { res ^= t[id][i]; } return res; } int main() { int n, q; scanf("%d%d", &n, &q); for (int i = 1; i <= n; ++i) { scanf("%d", &arr[i]); inc(i & 1, i, arr[i]); } while (q--) { int qt, l, r; scanf("%d%d%d", &qt, &l, &r); if (qt == 1) { inc(l & 1, l, arr[l] ^ r); arr[l] = r; } else { if ((r - l + 1) % 2 == 0) { puts("0"); continue; } printf("%d\n", sum(l & 1, r) ^ sum(l & 1, l - 1)); } } }

Compilation message (stderr)

xoranges.cpp: In function 'int main()':
xoranges.cpp:23:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   23 |     scanf("%d%d", &n, &q);
      |     ~~~~~^~~~~~~~~~~~~~~~
xoranges.cpp:25:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   25 |         scanf("%d", &arr[i]);
      |         ~~~~~^~~~~~~~~~~~~~~
xoranges.cpp:30:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   30 |         scanf("%d%d%d", &qt, &l, &r);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~
#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...