제출 #445622

#제출 시각아이디문제언어결과실행 시간메모리
445622aris12345678XORanges (eJOI19_xoranges)C++14
100 / 100
143 ms8356 KiB
#include <bits/stdc++.h> using namespace std; const int mxN = 2*1e5+5; int a[mxN]; template<typename T> struct Fenwick_Tree { vector<T> bit; void init(int n) { bit.assign(mxN, 0); } void update(int pos, T val, int n) { while(pos < mxN) { bit[pos] ^= val; pos += (pos&(-pos)); } } T query(int pos) { int ans = 0; while(pos > 0) { ans ^= bit[pos]; pos -= (pos&(-pos)); } return ans; } }; Fenwick_Tree<int> bit_even, bit_odd; int main() { int n, q; scanf("%d %d", &n, &q); bit_even.init(n); bit_odd.init(n); for(int i = 1; i <= n; i++) { scanf("%d", &a[i]); if(i%2 == 0) bit_even.update(i, a[i], n); else bit_odd.update(i, a[i], n); } while(q--) { int type, l, r; scanf("%d %d %d", &type, &l, &r); if(type == 1) { if(l%2 == 0) { bit_even.update(l, a[l], n); bit_even.update(l, r, n); } else { bit_odd.update(l, a[l], n); bit_odd.update(l, r, n); } a[l] = r; } else { if(l%2 != r%2) printf("0\n"); else { int ans; if(l == 1) { if(r%2 == 0) ans = bit_even.query(r); else ans = bit_odd.query(r); } else { if(r%2 == 0) ans = bit_even.query(r)^bit_even.query(l-1); else ans = bit_odd.query(r)^bit_odd.query(l-1); } printf("%d\n", ans); } } } return 0; }

컴파일 시 표준 에러 (stderr) 메시지

xoranges.cpp: In function 'int main()':
xoranges.cpp:32:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   32 |     scanf("%d %d", &n, &q);
      |     ~~~~~^~~~~~~~~~~~~~~~~
xoranges.cpp:36:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   36 |         scanf("%d", &a[i]);
      |         ~~~~~^~~~~~~~~~~~~
xoranges.cpp:44:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   44 |         scanf("%d %d %d", &type, &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...