AcWing 1227. 分巧克力
原题链接
简单
作者:
自豪的澡巾QAQ
,
2021-02-15 15:37:46
,
所有人可见
,
阅读 267
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 1e5 + 5;
int n,k;
int ranc[N][2];
bool check(int mid) {
int res = 0;
for (int i = 0;i < n;i++) {
//防止长方形的长或宽小于正方形的边长,因为题中的巧克力是不能拼凑的
res += (ranc[i][0] / mid) * (ranc[i][1] / mid);
}
return res >= k;
}
int main() {
cin >> n >> k;
for (int i = 0;i < n;i++) {
cin >> ranc[i][0] >> ranc[i][1];
}
int l = 1, r = 1e5;
while (l < r) {
int mid = (l + r + 1) / 2;//写法为向上取整
if (check(mid)) {
l = mid;
} else {
r = mid - 1;
}
}
cout << l << endl;
}