#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
using ll = long long;
ll n,q,a[200007],l,r,type,res,i,j,res1,pip,k,res2,x[200007],t[800007];
void build(ll v,ll tl,ll tr) {
if (tl==tr) {
t[v] = a[tl];
return;
}
ll tm = (tl+tr)/2;
build(2*v+1,tl,tm);
build(2*v+2,tm+1,tr);
t[v] = t[2*v+1]^t[2*v+2];
}
ll que(ll v,ll tl,ll tr,ll l,ll r) {
if (l>tr||r<tl) return 0;
if (l<=tl&&tr<=r) return t[v];
ll tm = (tl+tr)/2;
return (que(2*v+1,tl,tm,l,r)^que(2*v+2,tm+1,tr,l,r));
}
int main()
{
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
cin>>n>>q;
for (i=1;i<=n;i++) cin>>a[i];
build(0,1,n);
for (i=1;i<=n;i++) x[i] = x[i-1]^a[i];
while (q--) {
cin>>type>>l>>r;
res = 0;
pip = 0;
res2 = 0;
if (type==1) {
a[l] = r;
}
else {
if (l==r) cout<<a[l]<<endl;
else {
for (i=l;i<=r;i++) res2^=a[i];
for (i=1;i<=n;i++) {
if (l+i>r) break;
for (j=l;j<=r;j++) {
if (j+i>r) {pip = 10;break;}
res1 = 0;
res1 = que(0,1,n,j,j+i);
res^=res1;
}
}
cout<<(res^res2)<<endl;
}
}
}
return 0;
}
# | 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... |