求助
查看原帖
求助
932905
tan999999楼主2025/1/26 16:26

题目

#include<bits/stdc++.h>
using namespace std;

long long p,l=1,r,mid=0,ans=0,sum=0,n,a[101],b[101],z[101];
bool check(long long m){
	for(int i=1;i<=n;i++){
		if(m>z[i]){
			sum+=a[i]*z[i]+b[i]*(m-z[i]);
		}else{
			sum+=a[i]*m;
		}
	}
	return sum>=p;
}

int main(){
	//freopen(".in","r",stdin);
	//freopen(".out","w",stdout);
	cin>>n>>p;
	for(int i=1;i<=n;i++){
		cin>>z[i]>>a[i]>>b[i];
	}
	r=p;
	while(l<=r){
		mid=(l+r)>>1;
		if(check(mid)){
			r=mid-1;
			ans=mid;
		}else{
			l=mid+1;
		}
	}
	cout<<ans<<endl;
	return 0;
}

2025/1/26 16:26
加载中...