蒟蒻の吐槽:蓝题?不至于吧
若 WA 了 #19,那么说明你的程序有可能上界没开够!
#include<bits/stdc++.h>
using namespace std;
int n;
double k[100001],P[100001];
bool check(double t)
{
double sum=0;
for(int i=1;i<=n;i++)
if(k[i]<t)
sum+=(t-k[i])/P[i];
return sum<=t;
}
bool cp(double a,double b)
{
return a*100000+1<b*100000;
}
int main()
{
int p,a,b;
double l=1e8,r=1.5e10;
cin>>n>>p;
for(int i=1;i<=n;i++) cin>>a>>b,k[i]=1.0*b/a,P[i]=1.0*p/a,l=min(k[i],l);
while(cp(l,r))
{
double mid=(l+r)/2;
if(check(mid)) l=mid;
else r=mid;
}
if(l>=1e10) cout<<-1<<endl;
else cout<<l<<endl;
return 0;
}