# include <bits/stdc++.h>
using namespace std;
long long n,q,a[300005],ty,w,idx,val,tree[5][1200005],ans,x,ri,le;
void update(int node, int le, int ri, int idx, int val, int w)
{
if (le>idx || ri<idx) return;
if (idx==le && idx==ri)
{
tree[w][node]^=val;
return ;
}
long long mid=(le+ri)/2;
update(2*node, le, mid, idx, val , w);
update(2*node+1, mid+1, ri , idx, val, w);
tree[w][node]=tree[w][2*node]^tree[w][2*node+1];
}
long long getans(int node, int le, int ri, int start, int end, int w)
{
if (le>end || ri<start) return 0;
if (le>=start && ri<=end)
{
return tree[w][node];
}
long long mid=(le+ri)/2;
long long p1=getans(2*node, le, mid, start, end,w);
long long p2=getans(2*node+1, mid+1, ri, start, end,w);
return p1^p2;
}
int main()
{
cin>>n>>q;
for (int i=1; i<=n; i++)
{
cin>>a[i];
if (i%2==1)
{
update(1,1,n,i,a[i],1);
}
else
{
update(1,1,n, i,a[i],0);
}
}
//cout<<1<<endl;
for (int i=1; i<=q; i++)
{
cin>>ty;
if (ty==1)
{
cin>>idx>>val;
w=val^a[idx];
update(1,1,n, idx, w, idx%2);
a[idx]=val;
}
else
{
cin>>le>>ri;
x=(ri-le+1);
if (x%2==0)
{
cout<<0<<endl;
continue;
}//cout<<le<<" "<<ri<<" ";
cout<<getans(1,1,n,le,ri,le%2)<<endl;
}
}
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
384 KB |
Output is correct |
2 |
Correct |
1 ms |
384 KB |
Output is correct |
3 |
Correct |
1 ms |
384 KB |
Output is correct |
4 |
Correct |
1 ms |
384 KB |
Output is correct |
5 |
Correct |
1 ms |
384 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
3 ms |
384 KB |
Output is correct |
2 |
Correct |
3 ms |
384 KB |
Output is correct |
3 |
Correct |
3 ms |
384 KB |
Output is correct |
4 |
Correct |
3 ms |
384 KB |
Output is correct |
5 |
Correct |
3 ms |
384 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
384 KB |
Output is correct |
2 |
Correct |
1 ms |
384 KB |
Output is correct |
3 |
Correct |
1 ms |
384 KB |
Output is correct |
4 |
Correct |
1 ms |
384 KB |
Output is correct |
5 |
Correct |
1 ms |
384 KB |
Output is correct |
6 |
Correct |
3 ms |
384 KB |
Output is correct |
7 |
Correct |
3 ms |
384 KB |
Output is correct |
8 |
Correct |
3 ms |
384 KB |
Output is correct |
9 |
Correct |
3 ms |
384 KB |
Output is correct |
10 |
Correct |
3 ms |
384 KB |
Output is correct |
11 |
Correct |
19 ms |
640 KB |
Output is correct |
12 |
Correct |
19 ms |
640 KB |
Output is correct |
13 |
Correct |
23 ms |
640 KB |
Output is correct |
14 |
Correct |
23 ms |
640 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Execution timed out |
1055 ms |
15136 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
384 KB |
Output is correct |
2 |
Correct |
1 ms |
384 KB |
Output is correct |
3 |
Correct |
1 ms |
384 KB |
Output is correct |
4 |
Correct |
1 ms |
384 KB |
Output is correct |
5 |
Correct |
1 ms |
384 KB |
Output is correct |
6 |
Correct |
3 ms |
384 KB |
Output is correct |
7 |
Correct |
3 ms |
384 KB |
Output is correct |
8 |
Correct |
3 ms |
384 KB |
Output is correct |
9 |
Correct |
3 ms |
384 KB |
Output is correct |
10 |
Correct |
3 ms |
384 KB |
Output is correct |
11 |
Correct |
19 ms |
640 KB |
Output is correct |
12 |
Correct |
19 ms |
640 KB |
Output is correct |
13 |
Correct |
23 ms |
640 KB |
Output is correct |
14 |
Correct |
23 ms |
640 KB |
Output is correct |
15 |
Execution timed out |
1055 ms |
15136 KB |
Time limit exceeded |
16 |
Halted |
0 ms |
0 KB |
- |