#include <bits/stdc++.h>
#define int long long
#define fi first
#define se second
#define Sz(x) (int)x.size()
#define mp make_pair
using namespace std;
typedef long long ll;
const int N = 2e5 + 5;
int n, q, a[N];
void solve() {
cin >> n >> q;
vector <int> pref(n+1,0);
for (int i = 1; i <= n; i++) {
cin >> a[i];
pref[i] = (pref[i-1] ^ a[i]);
}
while (q--) {
int tp;
cin >> tp;
if (tp == 1) {
int ind, val;
cin >> ind >> val;
a[ind] = val;
for (int i = 1; i <= n; i++) {
pref[i] = (pref[i-1] ^ a[i]);
}
}
else {
int l, r;
cin >> l >> r;
int ans = 0;
for (int i = 1; i <= r-l+1; i++) {
for (int j = l; j+i-1 <= r; j++) {
ans ^= (pref[j+i-1] ^ pref[j-1]);
}
}
cout << ans << '\n';
}
}
}
signed main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int t = 1;
//cin >> t;
while ( t-- ) {
solve();
cout << '\n';
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |