Submission #1176438

#TimeUsernameProblemLanguageResultExecution timeMemory
1176438Albara_AbdulhafithXORanges (eJOI19_xoranges)C++20
0 / 100
49 ms4680 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; #define fastIO ios_base::sync_with_stdio(0);cin.tie(nullptr);cout.tie(nullptr); #define all(x) x.begin(), x.end() #define rall(x) x.rbegin(), x.rend() #define take(x) for(auto& el : x){cin >> el;} #define give(x) for(auto& el : x){cout << el << ' ';}cout << '\n'; #define vi vector<int> #define vvi vector<vi> #define vll vector<ll> #define vvll vector<vll> #define rep(i, x) for(int i = 0; i < x; i++) #define sz(x) ll(x.size()) const ll modu = 998244353ll; ll mod(ll x, ll md = modu){ return (((x % md) + md ) % md); } void solve(){ int n, q; cin >> n >> q; vector<int> a(n + 1); a[0] = 0; for(int i = 1; i <= n;i++){ cin >> a[i]; } vector<int> prefodd(n + 1); vector<int> prefeven(n + 1); prefeven[0] = prefodd[0] = 0; prefodd[1] = a[1]; prefeven[1] = 0; for(int i = 2; i <= n; i++){ if(i & 1){ prefeven[i] = prefeven[i - 1]; prefodd[i] = (a[i] ^ prefodd[i - 1]); } else{ prefeven[i] = (a[i] ^ prefeven[i - 1]); prefodd[i] = prefodd[i - 1]; } } int op, l, r; for(int i = 0; i < q; i++){ cin >> op >> l >> r; if(op == 1){ a[l] = r; if(l & 1){ prefodd[l] = (prefodd[l - 1] ^ a[l]); } else{ prefeven[l] = (prefeven[l - 1] ^ a[l]); } for(int j = l + 1; j <= n; j++){ if(j & 1){ prefeven[j] = prefeven[j - 1]; prefodd[j] = (a[j] ^ prefodd[j - 1]); } else{ prefeven[j] = (a[j] ^ prefeven[j - 1]); prefodd[j] = prefodd[j - 1]; } } } else{ bool cond = (!((r - l) & 1)); bool swtch = (l & 1); if(!cond){ swtch = (!swtch); } if(swtch){ cout << (prefodd[r] ^ prefodd[l - 1 + (!cond)]) << '\n'; } else{ cout << (prefeven[r] ^ prefeven[l - 1 + (!cond)]) << '\n'; } } } } int main(){ fastIO int tc = 1; //cin >> tc; while(tc--){ solve(); } 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...