P1067 叠罗汉

题目描述

茜茜和聪聪是关系很好的同桌,有一天,茜茜觉得天空中的白云像棉花糖一样,应该很好吃吧,但是够不着,她很烦恼。
聪聪为了帮助茜茜解决烦恼,决定帮他把天空中的白云摘下来做成棉花糖给她吃。
但是聪聪也够不着。于是他购买了 \(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个机器人的身高。

输出格式

输出一个整数,用于表示最少需要多少机器人才能够够着白云;如果所有的机器人叠在一起都够不着白云,则输出“-1”。

猜你喜欢

转载自www.cnblogs.com/problems/p/P1067.html
今日推荐