Submission #1214802

#TimeUsernameProblemLanguageResultExecution timeMemory
1214802nvc2k8XORanges (eJOI19_xoranges)C++20
100 / 100
62 ms6216 KiB
#include <bits/stdc++.h> #define TASK "kajsdkajsdkasdj" #define INT_LIM (int) 2147483647 #define LL_LIM (long long) 9223372036854775807 #define endl '\n' #define mp make_pair #define pb push_back #define fi first #define se second #define BIT(i,x) (((i)>>(x))&1) #define FOR(i,a,b) for(int i = (a); i<=(b); i++) #define FORD(i,a,b) for(int i = (a); i>=(b); i--) #define ll long long #define pii pair<int,int> using namespace std; ///------------------------------------------/// struct Fenwick{ int n; ll f[200005]; void init(int _n) { n = _n; FOR(i, 1, n) f[i] = 0; } void update(int p, ll delta) { for (int i = p; i<=n; i+=(i&(-i))) f[i]^=delta; } ll get(int l, int r) { ll ret = 0; for (int i = r; i>0; i-=(i&(-i))) ret^=f[i]; for (int i = l-1; i>0; i-=(i&(-i))) ret^= f[i]; return ret; } } f0, f1; int n,q; ll a[200005]; void inp() { cin >> n >> q; f0.init(n); f1.init(n); FOR(i, 1, n) cin >> a[i]; } void solve() { FOR(i, 1, n) { if (i&1) f1.update(i, a[i]); else f0.update(i, a[i]); } FOR(i, 1, q) { int type; cin >> type; if (type==1) { int p; ll val; cin >> p >> val; ll delta = val^a[p]; a[p] = val; if (p&1) f1.update(p, delta); else f0.update(p, delta); } else { int l,r; cin >> l >> r; if ((r-l+1)&1) { if (l&1) cout << f1.get(l, r) << endl; else cout << f0.get(l,r) << endl; } else cout << 0 << endl; } } } signed main() { ///--------------------------/// ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); if (fopen(TASK".INP","r")!=NULL) { freopen(TASK".INP","r",stdin); freopen(TASK".OUT","w",stdout); } ///--------------------------/// int NTEST = 1; //cin >> NTEST; while (NTEST--) { inp(); solve(); } return 0; } ///------------------------------------------///

Compilation message (stderr)

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