Submission #958664

#TimeUsernameProblemLanguageResultExecution timeMemory
958664M_SH_OXORanges (eJOI19_xoranges)C++14
55 / 100
1066 ms2808 KiB
#pragma GCC optimize("O3") #pragma GCC optimization("Ofast,unroll-loops") #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") #include<bits/stdc++.h> #define ll long long #define dou long double #define str string #define pb push_back #define fr first #define se second #define vll vector<ll> #define vpll vector<pair<ll, ll>> #define pll pair<ll, ll> #define endl "\n" using namespace std; ll n; ll a[200000]; /*ll tree[400004]; void build_tree(int v, int tl, int tr) { if (tl == tr) { if(tl % 2 == 0) tree[v] = a[tl]; else tree[v] = 0; } else { int tm = (tl + tr) / 2; build_tree(v * 2, tl, tm); build_tree(v * 2 + 1, tm + 1, tr); tree[v] = tree[v * 2] ^ tree[v * 2 + 1]; } } int get_sum(int l, int r, int v, int tl, int tr) { if (l <= tl && tr <= r) { return tree[v]; } if (tr < l || r < tl) { return 0; } int tm = (tl + tr) / 2; ll k = get_sum(l, r, v * 2, tl, tm) ^ get_sum(l, r, v * 2 + 1, tm + 1, tr); return k; } void update(int idx, int val, int v, int tl, int tr) { if (idx <= tl && tr <= idx) { a[idx] = val; tree[v] = val; return; } if (tr < idx || idx < tl) { return; } int tm = (tl + tr) / 2; update(idx, val, v * 2, tl, tm); update(idx, val, v * 2 + 1, tm + 1, tr); tree[v] = tree[v * 2] ^ tree[v * 2 + 1]; } */ int main() { ll n, q, k, x, l, r; cin >> n >> q; for(int i = 0; i < n; i ++) { cin >> a[i]; } //build_tree(1, 0, n-1); for(; q > 0; q --) { cin >> x >> l >> r; if(x == 1) { a[l-1] = r; } else { k = 0; if((r-l+1) % 2 == 1) { for(int i = l-1; i < r; i += 2) { k ^= a[i]; } } cout << k << endl; } } }

Compilation message (stderr)

xoranges.cpp:2: warning: ignoring '#pragma GCC optimization' [-Wunknown-pragmas]
    2 | #pragma GCC optimization("Ofast,unroll-loops")
      |
#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...