50分求助!!!!!!
查看原帖
50分求助!!!!!!
528377
HaoranZing楼主2022/7/16 09:53
// P3743 kotori的设备

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

int n;
double p;
double a[200005],b[200005];
double ans=0;
double sum=0;

int check(double x){
	double q=x*p;
	sum=0;
	for(int i=1;i<=n;i++){
		if(a[i]*x<=b[i]){
			continue;
		}
		sum+=(a[i]*x-b[i]);
	}
	return sum<=q;
}

int main(){
	
	cin>>n>>p;
	for(int i=1;i<=n;i++){
		cin>>a[i]>>b[i];
		sum+=a[i];
	}
	
	if(sum<=p){
		cout<<"-1";
		return 0;
	}
	
	double l=1,r=1e10;
	while(r-l>1e-6){
		double mid=(l+r)/2;
		if(check(mid)){
			ans=mid;
			l=mid;
		}
		else{
			r=mid;
		}
	}
	
	printf("%.10f",ans);
	
	return 0;
} 
2022/7/16 09:53
加载中...