答捞!丘条
查看原帖
答捞!丘条
1517836
wqy0525楼主2025/8/1 12:28
#include<bits/stdc++.h>
using namespace std;
const long long N=1e6+17;
long long n;
long double p;
long double a[N],b[N],sum;
inline bool check(long double t){
	long double x=t*p;
	for(long long i=1;i<=n;i++){
		if(b[i]>=t*a[i]) continue;
		x+=b[i];
		x-=t*a[i];
	}
	if(x>=0) return 1;
	return 0;
}
signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin>>n>>p;
	for(long long i=1;i<=n;i++){
		cin>>a[i]>>b[i];
		sum+=a[i];
	}
	if(sum<=0){
		cout<<"-1"<<'\n';
		return 0;
	}
	long double l=0,r=1e18;
	while(r-l>1e-5){
		long double mid=(l+r)/2.0;
		if(check(mid)){
			l=mid;
		}
		else{
			r=mid;
		}
	}
	printf("%.5lf\n",l);
	return 0;
}

2025/8/1 12:28
加载中...