Submission #464497

#TimeUsernameProblemLanguageResultExecution timeMemory
464497ItamarXORanges (eJOI19_xoranges)C++14
75 / 100
1082 ms5564 KiB
#include <iostream> #include <algorithm> #include <vector> using namespace std; vector<int> odd; vector<int> eve; vector<int> val; int n, q; void fun() { int xo = 0; for (int i = 0; i < n; i += 2) { xo = xo ^ val[i]; eve[i] = xo; } xo = 0; for (int i = 1; i < n; i += 2) { xo = xo ^ val[i]; odd[i] = xo; } } int main() { cin >> n; cin >> q; odd.resize(n); eve.resize(n); for (int i = 0; i < n; i++) { int x; cin >> x; val.push_back(x); } fun(); for (int i = 0; i < q; i++) { int a, b, c; cin >> a; cin >> b; cin >> c; if (a == 1) { val[b - 1] = c; fun(); } else { if ((b - c-1) % 2 == 0) { cout << 0 << endl; } else { if (b == 1) { cout << eve[(c - 1) ] << endl; } else if ((b - 1) % 2 == 0) { int x = (eve[(b - 3)]) ^ (eve[(c - 1)]); cout << x << endl; } else if (b == 2) { cout << odd[(c - 1)] << endl; } else{ int x = odd[(b - 3)] ^ odd[(c-1)]; cout << x << endl; } } } } }
#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...