求条
  • 板块灌水区
  • 楼主cmpt_xiaoxiao
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/4/22 20:29
  • 上次更新2024/4/22 22:54:11
查看原帖
求条
954694
cmpt_xiaoxiao楼主2024/4/22 20:29

100分(逃

WA code

#include<iostream>
#include<cstring>
using namespace std;
int n,m;
int cfs[1000001];
int d[1000001];
int l[1000001];
int r[1000001];
int a[1000001];
int cf[1000001];
int qzh[1000001];
bool check(int ans){
	memset(cf,0,sizeof(cf));
	for(int i=1;i<=ans;i++){
		cf[l[i]]+=d[i];
		cf[r[i]+1]-=d[i];
	}
	for(int i=1;i<=n;i++){
		qzh[i]=qzh[i-1]+cf[i];
		if(qzh[i]>cfs[i]) return 0;
	}
	return 1;
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++) cin>>cfs[i];
	for(int i=1;i<=m;i++) cin>>d[i]>>l[i]>>r[i];
	if(check(m)) cout<<0;
	else{
		int L=0,R=m;
		while(L<R){
			int mid=(L+R)/2;
			if(check(mid)) L=mid+1;
			else R=mid; 
		}
		cout<<-1<<endl<<L;
	}
	return 0;
}

我甚至去对比了一下第一篇题解,实在是找不出啊

2024/4/22 20:29
加载中...