考点:整数二分
扩展题
1、AcWing 789.旋转的范围
2、AcWing 22. 旋转数组的最小数字,不具有单调性,但具有二段性
3、AcWing 113. 特殊排序,没有单调性,但可以二分
#include <iostream>
using namespace std;
const int N = 100010;
typedef long long LL;
int n,k;
int w[N],h[N];
bool check(int mid){
LL cnt =0;
for(int i=0;i<n;i++){
cnt +=h[i]/mid * (w[i]/mid);
if(cnt >= k) return true;
}
return false;
}
int main(){
cin>>n>>k;
for(int i=0;i<n;i++) cin>>h[i]>>w[i];
int l=1,r=1e5;
while(l<r){
int mid = l+r+1>>1;
if(check(mid)) l = mid;
else r= mid-1;
}
printf("%d\n",r);
return 0;
}