叠罗汉

9.2练习题3 叠罗汉 题解

烂漫一生 提交于 2019-11-29 17:18:07
题目出处: 洛谷 P2676 ,不过题目描述改掉了,程序也稍有不同。 题目描述 茜茜和聪聪是关系很好的同桌,有一天,茜茜觉得天空中的白云像棉花糖一样,应该很好吃吧,但是够不着,她很烦恼。 聪聪为了帮助茜茜解决烦恼,决定帮他把天空中的白云摘下来做成棉花糖给她吃。 但是聪聪也够不着。于是他购买了 \(n\) 个AI3403型超级机器人来帮助他摘天空中的白云。 这些机器人可以采取叠罗汉的方式第在一起,叠在一起的高度就是这些机器人的身高之和,并且如果最高的那个自己人的身高达到白云的高度,他们就可以摘到白云来制作棉花糖了。 但是有一个问题是:虽然这些机器人都是同一个型号的,但是制作它们的灵灵博士在设计的时候为了展现机器人的多样性所以为每一个机器人设计了不同的身高,第 \(i\) 个机器人的升高被设计成了 \(h_i\) 。 显然,叠成的罗汉中机器人的数量越多,这个罗汉就越不稳定。所以聪聪希望在能够到白云的前提下,让罗汉中机器人的数量尽可能的少。请你帮助聪聪计算所需机器人的最小的数量。 输入格式 输入的第一行包含两个正数 \(n(1 \le n \le 10000)\) 和 \(b(1 \le b \le 10^9)\) ,分别表示聪聪购买的机器人的数量和白云的高度。 接下来 \(n\) 行每行包含一个整数 \(h_i(1 \le hi \le 10^5)\) ,用于表示第i个机器人的身高。