登录 |
小雪同学在商店好多东西,所以快递盒子攒下了一大堆。她想把这些盒子整理一下。她整理盒子的时候按照这样的规则:
如果一个盒子的体积是另一个盒子体积的2倍或更大倍,那么这个大盒子可以装下这个小盒子;
一个盒子的内部最多只能装一个其他盒子;
一个盒子最多只能被装进其他盒子一次;
现在小雪想让整理完之后看见的盒子尽可能的少,请问按照这种方式整理之后,最后最少能看见几个盒子?
假设某个小盒子一旦被装到别的打盒子里,那么这个小盒子就看不见了。
首先输入一个正整数N代表盒子的数量,1 <= N <= 5*105
接下来一行输入N个正整数,以空格分隔,分别代表N个盒子的体积。每个盒子的体积在 [ 1 ~ 105 ] 范围内。
输出整理完之后最少能看见几个盒子,输出数据完成后输出回车换行。
8 2 4 8 9 6 7 5 2
5
整理的方法可能有不同,但最终看见的盒子数都是最少的。
例如可以这样整理 (5装2)、 (6装2)、 (7)、 (8)、 (9装4),共看见5个。
可能有其他装法最后也是5个,但是却没有比最后看见5个盒子更少的办法了。