Submission #1176430

#TimeUsernameProblemLanguageResultExecution timeMemory
1176430Albara_AbdulhafithXORanges (eJOI19_xoranges)C++20
0 / 100
50 ms4676 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); take(a); vector<int> prefodd(n); vector<int> prefeven(n); prefeven[0] = a[0]; prefodd[0] = 0; for(int i = 1; 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 - 1] = r; if(l & 1){ prefeven[l - 1] = ((l > 1 ? prefeven[l - 2] : 0) ^ a[l - 1]); } else{ prefodd[l - 1] = ((l > 1 ? prefodd[l - 2] : 0) ^ a[l - 1]); } for(int j = l; 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{ if(l & 1){ cout << (prefeven[r - 1] ^ (l > 1 ? prefeven[l - 2] : 0)) << '\n'; } else{ cout << (prefodd[r - 1] ^ (l > 1 ? prefodd[l - 2] : 0)) << '\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...