昨天ABC的D
  • 板块学术版
  • 楼主_FJ_
  • 当前回复9
  • 已保存回复9
  • 发布时间2024/11/10 11:34
  • 上次更新2024/11/10 15:14:41
查看原帖
昨天ABC的D
1394532
_FJ_楼主2024/11/10 11:34

这样为何能过,是数据水了?

#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;//cnt表示植物数 
ll a[N],sum;//a  差分数组 
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;//sum记 差分和 
			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;
}
2024/11/10 11:34
加载中...