Submission #464079

#TimeUsernameProblemLanguageResultExecution timeMemory
464079gagik_2007XORanges (eJOI19_xoranges)C++17
30 / 100
1095 ms14012 KiB
#include <iostream> #include <cmath> #include <algorithm> #include <vector> #include <string> #include <set> #include <map> #include <queue> #include <deque> #include <stack> #include <iomanip> #include <unordered_set> using namespace std; #define ll long long #define ff first #define ss second ll n, k, sum, m, s, f; ll MOD = 1e9 + 7; ll ttt; ll a[200007]; map<ll, ll>cur; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cin >> n >> k; for (int i = 1; i <= n; i++) { cin >> a[i]; } for (int j = 0; j < k; j++) { int id, c, d; cin >> id >> c >> d; if (id == 1) { a[c] = d; } else { ll ans = 0; ll m = 2 * n - c - d - 1; for (int i = c; i <= d; i++) { ll f = i - c + 1; ll x = min(f, m - f + 1); cur[a[i]] += (x - 1) * x + (m - 2 * (x - 1)) * x; //cout << a[i] << " " << cur[a[i]] << endl; } for (auto i : cur) { if (i.ss % 2 != 0) { ans = ans ^ i.ff; } cur[i.ff] = 0; } cout << ans << endl; } } return 0; }
#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...