求助
查看原帖
求助
351740
Sai_t楼主2021/5/20 17:44

RT

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int n,p,a[100009],b[100009];
double l=0,r=10000000000.0;
int sum;
bool Check(double Time){
	double tot=p*1.0*Time*1.0;
	double res=0;
	for(int i=0;i<n;i++){
		double Cost=a[i]*1.0*Time*1.0;
		if(b[i]>=Cost)continue;
		res+=Cost-b[i];
	}
	return res<=tot;
}
int main(){
	cin>>n>>p;
	for(int i=0;i<n;i++){cin>>a[i]>>b[i];sum+=a[i];}
	if(sum<=p){cout<<"-1.000000"<<endl;return 0;}
	while(r-l>0.000001){
		double mid=(l+r)*1.0/2*1.0;
		if(Check(mid))l=mid;
		else r=mid;
	}
	cout<<fixed<<setprecision(9)<<l<<endl;
	return 0;
}

90分

2021/5/20 17:44
加载中...