1227. 分巧克力

挺好想的二分题吧。

const int N=1e5+10;
PII a[N];
int n,k;

bool check(int mid)
{
    int res=0;
    for(int i=0;i<n;i++) res+=(a[i].fi/mid)*(a[i].se/mid);
    return res>=k;
}

int main()
{
    cin>>n>>k;

    int l=0,r=0;
    for(int i=0;i<n;i++)
    {
        cin>>a[i].fi>>a[i].se;
        r=max(r,min(a[i].fi,a[i].se));
    }

    while(l<r)
    {
        int mid=l+r+1>>1;
        if(check(mid)) l=mid;
        else r=mid-1;
    }

    cout<<l<<endl;

    //system("pause");
    return 0;
}
posted @ 2021-01-21 17:51  Dazzling!  阅读(26)  评论(0编辑  收藏  举报