Codeforces #409div2 C

http://codeforces.com/contest/801/problem/C

有一个充电器和n个手机,手机剩余电量b[i],消耗电量速度a[i]每秒,p为充电器每秒可以充的电量。

只要充电器充的电量+剩余的电量>=消耗的电量就可以使用,二分。

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#define inf 1e18
#define eps 1e-4
#define PI acos(double(-1))
using namespace std;

typedef long long ll;
typedef long double ld;
const int maxn=1e5+10;
int n,p,a[maxn],b[maxn];
ld mid,r=inf,l=0;
ll sum=0;

int check()
{
    ld ans=mid*p,need=0;
    for(int i=0;i=eps)
    {
        mid=(l+r)/2;
        if(check())
            l=mid;
        else
            r=mid;
    }
    printf("%.9lf\n",(double)mid);
    return 0;
}


你可能感兴趣的:(二分)