Submission #1246305

#TimeUsernameProblemLanguageResultExecution timeMemory
1246305trinm01XORanges (eJOI19_xoranges)C++20
100 / 100
114 ms9824 KiB
// #pragma GCC optimize("O3") // #pragma GCC optimization("Ofast,unroll-loops") // #pragma GCC target("avx2,bmi,bmi2,lzd,popd") #include <bits/stdc++.h> using namespace std; #define int long long #define ll long long #define FOR(i, l, r) for (int i = (l); i <= (r); i++) #define FOD(i, r, l) for (int i = (r); i >= (l); i--) #define fi first #define se second #define pii pair<int, int> const ll mod = 1e9+7; const int MAXN = 2e5 + 5; const int oo = 1e18 + 7; const ll base = 320; int n, q; struct segtree{ int st[4*MAXN]; void update(int id, int l, int r, int i, int val){ if(l>i || r<i){ return; } if(l>=r){ st[id]=val; return; } int mid=(l+r)/2; update(id*2, l, mid, i, val); update(id*2+1, mid+1, r, i, val); st[id]=st[id*2]^st[id*2+1]; } int get(int id, int l, int r, int i, int j){ if(l>j || r<i){ return 0; } if(l>=i && r<=j){ return st[id]; } int mid=(l+r)/2; return get(id*2, l, mid, i, j)^get(id*2+1, mid+1, r, i, j); } }T[2]; signed main(){ ios::sync_with_stdio(false); cin.tie(nullptr); // freopen("test.txt", "r", stdin); // freopen("o2.out", "w", stdout); if(fopen(".INP", "r")){ freopen(".INP", "r", stdin); freopen(".OUT", "w", stdout); } cin >> n >> q; FOR(i, 1, n){ int x; cin >> x; T[i%2].update(1, 1, n, i, x); T[(i+1)%2].update(1, 1, n, i, 0); } while(q--){ int t; cin >> t; if(t==1){ int i, val; cin >> i >> val; T[i%2].update(1, 1, n, i, val); } else{ int l, r; cin >> l >> r; if((r-l+1)%2==1){ cout << T[l%2].get(1, 1, n, l, r); } else{ cout << 0; } cout << '\n'; } } return 0; }

Compilation message (stderr)

xoranges.cpp: In function 'int main()':
xoranges.cpp:55:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   55 |         freopen(".INP", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~
xoranges.cpp:56:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   56 |         freopen(".OUT", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
#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...