Submission #229737

#TimeUsernameProblemLanguageResultExecution timeMemory
229737CoderXORanges (eJOI19_xoranges)C++14
100 / 100
150 ms3140 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int,int> pii; #define SZ(x) (int)(x.size()) #define F0(i,n) for(int i=0;i<n;i++) #define F1(i,n) for(int i=1;i<=n;i++) #define CL(a,x) memset(x, a, sizeof(x)); #define PR(x) cerr << #x << "=" << (x) << endl; const int inf = 1000000009; const double pi = atan(1.0)*4.0; const double eps = 1e-8; const int N = 200001; int i, j, k, m, n; int a[N]; int h[2][N]; void add(int ind, int x, int val) { while (x <= n/2+1) { h[ind][x] ^= val; x = (x|(x-1)) + 1; } } int get(int ind, int x) { int ret = 0; while (x) { ret ^= h[ind][x]; x &= (x-1); } return ret; } int main() { //freopen("x.in", "r", stdin); int q, t; cin >> n >> q; F1(i, n) { scanf("%d", &a[i]); add(i % 2, (i + 1) / 2, a[i]); } while (q--) { scanf("%d%d%d", &t, &i, &j); if (t == 1) { add(i % 2, (i + 1) / 2, a[i]); a[i] = j; add(i % 2, (i + 1) / 2, a[i]); } else { int len = j - i + 1; int ret = 0; if (len % 2) { ret = get(j % 2, (j + 1) / 2) ^ get(i % 2, (i - 1) / 2); } printf("%d\n", ret); } } return 0; }

Compilation message (stderr)

xoranges.cpp: In function 'int main()':
xoranges.cpp:38:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d", &a[i]);
         ~~~~~^~~~~~~~~~~~~
xoranges.cpp:42:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d%d%d", &t, &i, &j);
         ~~~~~^~~~~~~~~~~~~~~~~~~~~~
#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...