AcWing 1227. 分巧克力
原题链接
简单
作者:
lszpyy
,
2025-01-14 16:48:03
,
所有人可见
,
阅读 1
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5+10;
int n,k;
int h[N],w[N];
int check_i(int x,int i){//对每一块巧克力检查,能分出来多少块
int a = h[i]/x;
int b = w[i]/x;
return a*b;
}
bool check(int x)//检查巧克力够不够分
{
int sum = 0;
for(int i = 1; i<=n;i++){
sum+=check_i(x,i);
}
if(sum>=k)return true;
return false;
}
int main(){
cin>>n>>k;
for(int i = 1;i<=n;i++)cin>>h[i]>>w[i];
int l = 0;
int r = 1e5;
while(l<r){
int mid = (l+r+1)>>1;
if(check(mid))l = mid;
else r = mid - 1;
}
cout << l << endl;
return 0;
}