题目传送门 我代码为什么只得了个36 扣的分全TLE
#include <iostream>
using namespace std;
const int N = 1e6;
int n = 0, k = 0;
struct Chocolate {
int height;
int width;
} a[N];
int main() {
ios::sync_with_stdio(false);
cin >> n >> k;
for (int i = 0; i < n; ++i)
cin >> a[i].height >> a[i].width;
int left = 0, right = N;
int ans = 0;
int mid = 0;
while (left < right) {
mid = left + (right - left) / 2;
int num = 0;
for (int i = 0; i < n; ++i)
num += (a[i].height / mid) * (a[i].width / mid);
if (num >= k)
left = ans = mid;
else
right = mid - 1;
}
cout << ans;
return 0;
}
// 对于第i个巧克力 正方形的边长是mid的数量是 (a[i].height / mid) * (a[i].width /
// mid)