AcWing 1227. 分巧克力
原题链接
简单
作者:
不知名路人
,
2021-04-11 10:55:10
,
所有人可见
,
阅读 420
import java.util.Scanner;
public class Main {
static int N=100010;
static int[] h=new int[N];
static int[] w=new int[N];
static int n,k;
public static void main(String[] args) {
Scanner in =new Scanner(System.in);
n=in.nextInt();
k=in.nextInt();
for(int i=0;i<n;i++){
h[i]=in.nextInt();
w[i]=in.nextInt();
}
int l=1,r=100000;
while (l<r){
int mid=(l+r+1)/2;//找最大边长
if(check_mid(mid)){
l=mid;
}else {
r=mid-1;
}
}
System.out.println(r);
}
static boolean check_mid(int mid){
int res=0;
for(int i=0;i<n;i++){
res+=(h[i]/mid)*(w[i]/mid);//原有面积除目标面积等于块数.
if(res>=k)
return true;
}
return false;
}
}