小于x的最大值:
符号:>=
返回值: l / r-1
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int n,k;
int h[100010],w[100010];
int isgreen(int d){
int num=0;
for(int i=0;i<n;i++){
num+=(h[i]/d)*(w[i]/d);
}
return num>=k;
}
int main(){
scanf("%d%d",&n,&k);
for(int i=0;i<n;i++){
scanf("%d %d",&h[i],&w[i]);
}
int l=-1,r=100010;
int mid;
while(l+1<r){
mid=l+(r-l)/2;
if(isgreen(mid)){
l=mid;
}
else
r=mid;
}
printf("%d",l);
return 0;
}