藍橋杯-分巧克力

藍橋杯-分巧克力
藍橋杯-分巧克力

解題思路:用二分查找,每次更新知足條件的ans便可.ios


#include<iostream>
using namespace std;
int n,k;
int main()
{
    int h[100000],w[100000];
    cin>>n>>k;
    for(int i = 0; i < n; i++)
    cin>>h[i]>>w[i];
    int l = 1, r = 100001;
    int ans;
    while(l <= r)
    {
        int mid = (l+r)/2;
        int cnt = 0;
        for(int j = 0; j < n; j++)
        {
            cnt += h[j]/mid * w[j]/mid; 
        }
        if(cnt >= k)
        {
            l = mid + 1;
            ans = mid;
        }
        else
        {
            r = mid - 1;
        }
    }
    cout<<ans<<endl;
    return 0;
}
相關文章
相關標籤/搜索