这样为何能过,是数据水了?
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int inf=2147483647;
const int N=200010;
int q,x,ty,cnt,ans;
ll a[N],sum;
bool used[N];
int main(){
scanf("%d",&q);
while(q--){
scanf("%d",&ty);
if(ty==1){
cnt++;
}else if(ty==2){
scanf("%d",&x);
a[1]+=x;
a[cnt+1]-=x;
}else if(ty==3){
scanf("%d",&x);
ans=sum=0;
for(int i=1;i<=cnt;i++){
sum+=a[i];
if(sum>=x&&!used[i])
used[i]=1,ans++;
}
printf("%d\n",ans);
}
}
return 0;
}