AcWing 1227. 分巧克力
原题链接
简单
作者:
无双飞怪
,
2024-04-15 15:06:06
,
所有人可见
,
阅读 2
//“最大” “最小”都可以想二分
//不多说了 直接二分巧克力的边长
//还是那句话 会不会都可以想二分和dp
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int h[N],w[N];
bool check(int mid)
{
LL sum=0;
for(int i=0;i<n;i++)
{
sum+=(h[i]/mid)*(w[i]/mid);
}
if(sum<k) return false;
return true;
}
int main()
{
int n,k;
cin>>n>>k;
for(int i=0;i<n;i++)
{
cin>>h[i]>>w[i];
}
int l=0,r=100000;
while(l<r)
{
int mid=l+r+1>>1;
if(check(mid)) l=mid;//如果满足条件 看边长更大是否靠谱
else r=mid-1;
}
cout<<r;
return 0;
}