这份代码应该可以通过 50 pts,但第七个点挂了,其调错,或 Hack。
#include <iostream>
#include <cstdio>
using namespace std;
const int N=3e5+10;
typedef long long ll;
ll n,q,c1,c2,w1,w2,a[N],op,l,r,s[N],len,lef,righ;
int main(){
scanf("%lld %lld %lld %lld %lld %lld",&n,&q,&c1,&c2,&w1,&w2);
for(int i=1;i<=n;i++){
scanf("%lld",a+i);
}
while(q--){
scanf("%lld %lld %lld",&op,&l,&r);
if(op==1)a[l]+=r;
else{
for(int i=1;i<=n;i++)s[i]=s[i-1]+a[i];
len=min(r-l+1,c2),lef=righ=0;
for(int i=l+len-1;i<=r;i++){
if(s[i]-s[i-len]>w2){
if(!lef)lef=i-len;
righ=i;
}
}
if(!lef&&!righ)printf("cont\n");
else if(righ-lef<=c1&&s[righ]-s[lef]<=w1)printf("cont\n");
else printf("tetris\n");
}
}
return 0;
}
感谢