普及2 第1题

#include<bits/stdc++.h>
using namespace std;
int n,m,r[1000010],d[1000010],s[1000010],t[1000010],f[1000010];
int check(long long mid){
	//不知道该怎么办 
}
int main(){
	cin>>n>>m;int u=1;
	for(int i=1;i<=n;i++)scanf("%d",&r[i]);
	for(int i=1;i<=m;i++){
		scanf("%d%d%d",&d[i],&s[i],&t[i]);
		f[s[i]]+=d[i];f[t[i]+1]-=d[i];
	}for(int i=1;i<=n;i++){
		f[i]=f[i-1]+1;
		if(f[i]>r[i])u=0; 
	}if(u==0)cout<<0;
	else{
		cout<<-1<<endl;
		memset(f,0,sizeof(f));
		int l=0,r=n+1;
		while(l+1<r){
			int mid=(l+r)/2;
			if(check(mid))l=mid+1;
			else r=mid-1;
		}
	}
	return 0;
}
1 个赞

题目或题面,你要养成良好习惯

1 个赞

:ok:知道

2 个赞

所以,题目呢!?还是你A了?

1 个赞

A了

1 个赞