QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#397164 | #4389. Copy | Diu | AC ✓ | 483ms | 4468kb | C++14 | 832b | 2024-04-23 18:47:11 | 2024-04-23 18:47:11 |
Judging History
answer
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=1e5+10;
inline int read(){
int x = 0, f = 1; char c = getchar();
while(c < '0' || c > '9'){if(c == '-')f = -1; c = getchar();}
while(c >= '0' && c <= '9'){x = (x << 1) + (x << 3) + c - '0'; c = getchar();}
return x * f;
}
int T,n,q;
int a[N],l[N],r[N],tot;
int main(){
// freopen(".in", "r", stdin);
// freopen(".out", "w", stdout);
scanf("%d",&T);
for(;T--;){
scanf("%d%d",&n,&q);
for(int i=1;i<=n;i++)scanf("%d",&a[i]);
tot=0;
int ans=0;
for(int op,x;q--;){
scanf("%d",&op);
if(op==1){
++tot;
scanf("%d%d",&l[tot],&r[tot]);
}else{
scanf("%d",&x);
for(int i=tot;i>=1;i--){
if(x>r[i])x-=(r[i]-l[i]+1);
}
ans^=a[x];
}
}
printf("%d\n",ans);
}
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 483ms
memory: 4468kb
input:
2 5 10 14138491 23289232 33892225 43531245 54436322 1 1 4 2 2 2 3 2 4 2 5 1 2 4 2 2 2 3 2 4 2 5 99990 99990 493133979 94198606 751145654 147404311 601524088 744747426 561746143 212260573 241231749 810352224 81276441 382492450 18779020 317505899 880615584 654793240 417574821 822313301 140569958 69317...
output:
28631531 787379207
result:
ok 2 lines