分巧克力

题目描述

儿童节那天有K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。

小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形。

为了公平起见,小明需要从这 N 块巧克力中切出K块巧克力分给小朋友们。切出的巧克力需要满足:

1. 形状是正方形,边长是整数

2. 大小相同

例如一块6x5的巧克力可以切出6块2x2的巧克力或者2块3x3的巧克力。

当然小朋友们都希望得到的巧克力尽可能大,你能帮小Hi计算出最大的边长是多少么?

输入

第一行包含两个整数N和K。(1 <= N, K <= 100000)

以下N行每行包含两个整数Hi和Wi。(1 <= Hi, Wi <= 100000)

输入保证每位小朋友至少能获得一块1x1的巧克力。

输出

输出切出的正方形巧克力最大可能的边长。

样例输入:

2 10

6 5

5 6

样例输出:

2

资源约定:

峰值内存消耗(含虚拟机) < 256M

CPU消耗 < 1000ms

请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。

所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。

不要使用package语句。不要使用jdk1.7及以上版本的特性。

主类的名字必须是:Main,否则按无效代码处理。

import java.util.Scanner;
class Cho {
int h;
int w;
public Cho(int h, int w) {
// TODO Auto-generated constructor stub
this.h = h;
this.w = w;
}
}
public class Main2 {
static int n, k;
static Cho[] cho;
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
n = in.nextInt();
k = in.nextInt();
int low = 1;
int mid = 0;
int high = 100000;
cho = new Cho[n];
for (int i = 0; i < n; i++) {
int a = in.nextInt();
int b = in.nextInt();
cho[i] = new Cho(a, b);
}
// 二分,基本思路为暴力,从大到小能够保证最先出来的结果就是符合要求的最大情况
while (low < high -1) {
mid = (low + high) /2;
if (!judge(mid)) {
high = mid;
} else {
low = mid;
}
}
System.out.println(mid - 1); }
private static boolean judge(int l) {
// TODO Auto-generated method stub
int sum = 0;
for (int i = 0; i < n; i++) {
sum += (cho[i].h * cho[i].w) / (l * l);
if (sum >= k) {
return true;
}
}
return false;
}
}

最新文章

  1. windows 7(32/64位)GHO安装指南(U盘引导篇)~
  2. 有意思的记录-Java
  3. List去重复(不是最简单,但绝对是最易理解)
  4. 【MVC 4】7.SportsSore:完成购物车
  5. 关于hive的存储格式
  6. IntelliJ IDEA 修改缓存文件设置
  7. 学习 Log4net
  8. 常用的Linux系统调用命令
  9. 【流媒體】live555—VS2008 下live555编译、使用及测试
  10. servlet监听器实现在线人数统计
  11. nyoj 88 汉诺塔(一)【快速幂】
  12. ADT 连接手机运行android应用程序时报错
  13. [git]checkout&amp;branch
  14. [转帖]TLS 1.3 VS TLS 1.2,让你明白 TLS 1.3 的强大
  15. 【Go语言】基本的语法
  16. C#学习笔记(33)——批量修改word标题
  17. LruCacahe在美团DSP系统中的应用演进
  18. error: expected unqualified-id extern &quot;C&quot; {
  19. 硬件RDMA的驱动配置和测试
  20. 目标检测应用化之web页面(YOLO、SSD等)

热门文章

  1. python pip下载设置
  2. JavaScript之ES5的继承
  3. Least Cost Bracket Sequence(贪心)
  4. 【转载】皇 家 国 际 开 户图像的插值算法18O88O49999
  5. Java开发架构篇《初识领域驱动设计DDD落地》
  6. MFC带参数启动指令发送与接收
  7. DPDK Hash Library原理(学习笔记)
  8. C# 数据操作系列 - 13 SugarSql初探
  9. Windows Terminal安装并美化
  10. 单词数(hdu2072)