问题 I: 吃零食

问题 I: 吃零食

时间限制: 1 Sec  内存限制: 128 MB
提交: 328  解决: 89
[状态] [讨论版] [提交] [命题人:]
题目描述
快要到期末了,pht在这两天好忙啊。经过几个小时的奋战,他终于把实验报告写完了,但是他因此错过了午饭时间,pht觉得自己好饿。
这时他发现在旁边xcp的位置上有好多零食,pht决定偷偷的拿一点他的零食吃
一共有n种零食,每种零食有ai袋
为了使xcp不容易发现自己偷吃了,pht应让自己在吃完后,使每个种类的零食剩下的尽量多,也就是说在挑选零食吃时,应考虑在挑选完后剩下袋数最少的零食的数量尽可能大
输入
第一行输入 n(1<=n<=100000)和m(m<=1e12)
m代表pht想吃多少袋零食
第二行输入n个数ai(1<=ai<=1e9) ,表示每种零食的数量。
输出
输出最优情况下的最小袋数,如果pht不能吃饱,输出-1,输出单独占一行
样例输入 Copy
3 3
5 3 4

3 4
5 3 4

3 13
5 3 4
样例输出 Copy
3

2

-1
提示
Case1:选取第一种两袋与第三种一袋,最少袋数为3

Case2:选取第一种三袋与第三种一袋,最少袋数为2