#include<bits/stdc++.h>
using namespace std;
struct abc{
int num,sum;
}o[1000001];
int n,sum;
int m,a,b,c;
int u;
void n1(){
for(int i=1;i<=n;i++) {
//if(o[i].num>=n) o[i].num=0;
o[i].num+=b;
}
for(int i=1;i<=n;i++){
if(o[i].num>n) o[i].num-=6;
}
}
void n2(){
o[u].sum=c;
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++) {
scanf("%d",&o[i].sum);
o[i].num=i;
sum+=o[i].sum;
}
scanf("%d",&m);
while(m--){
scanf("%d%d",&a,&b);
if(a==2){
cout<<sum<<"\n";
n1();
// for(int i=1;i<=n;i++) cout<<o[i].num<<' ';
// cout<<"\n";
}
if(a==1){
scanf("%d",&c);
for(int i=1;i<=n;i++){
if(o[i].num==b) {
u=i;
break;
}
}
sum=sum-o[u].sum+c;
n2();
cout<<sum<<"\n";
}
}
return 0;
}
顺带问两件事:
1.为什么这道题样例1longlong越界,int不会。
2.为什么这道题A了14个点,但显示0分
https://www.luogu.com.cn/record/144793067