| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 1210056 | sunflower | XORanges (eJOI19_xoranges) | C++17 | 49 ms | 5516 KiB | 
#include <bits/stdc++.h>
using namespace std;
int n, q;
#define MAX_N 200'200
int a[MAX_N + 7], pre[MAX_N + 7], sumXor[MAX_N + 7];
int f[MAX_N + 2];
#undef MAX_N
int main() {
  ios_base::sync_with_stdio(false);cin.tie(nullptr);
  if (fopen("test.inp","r")) {
    freopen("test.inp","r",stdin);
    freopen("test.out","w",stdout);
  }
  cin >> n >> q;
  for (int i = 1; i <= n; ++i) cin >> a[i];
  pre[0] = 0;
  for (int i = 1; i <= n; ++i) pre[i] = pre[i - 1] ^ a[i];
  sumXor[0] = 0;
  for (int i = 1; i <= n; ++i) sumXor[i] = sumXor[i - 1] ^ pre[i];
  f[0] = 0;
  for (int i = 1; i <= n; ++i) f[i] = f[i - 1] ^ sumXor[i];
  while (q--) {
    int type;
    cin >> type;
    if (type == 1) {
      int pos, val;
      cin >> pos >> val;
      a[pos] = val;
    } else {
      int l, r;
      cin >> l >> r;
      int ans = 0;
      if ((r - l + 1) % 2 == 1) {
          ans = sumXor[r];
          ans ^= sumXor[(l - 2 > 0 ? l - 2 : 0)];
      }
      ans ^= f[r - 1] ^ f[l - 1];
      ans ^= f[r - 1] ^ f[l - 2];
      cout << ans << "\n";
    }
  }
  return 0;
}
Compilation message (stderr)
| # | 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... | ||||
