时间限制: 2s
内存限制: 192MB 提交: 98 解决: 26
题目描述
除了学习C语言外,小O同样喜欢各种游戏,最近小O沉迷于
一款卡牌游戏不能自拔,小O希望在游戏中获得更高的排名
游戏的排名是根据获得的point的数量来计算的,获得point的
方法是用手中的卡牌去挑战BOSS,造成的伤害点数就是能获得的
point,point越高则排名越高,小O当然希望自己排名越高越好了
但是他不知道怎么使用手中的卡牌能获得更多的点数,
不过他知道聪明的你能帮他解决这个问题,所以来找你帮忙了
为了简化问题,我们假定小O手中拥有n张卡牌,
每张卡牌有一个攻击力a[i],BOSS的血量为m点
每张卡牌最多可以使用一次(可以不用,顺序随意),
当BOSS的血量少于等于0时,不能再攻击
因为point点数是根据伤害计算的,
所以最后一击的攻击力会被全部计入伤害中
输入格式
多组测试数据,请读入至文件尾
每组测试数据占两行
第一行为两个整数n,m,分别表示卡牌数和BOSS血量(1<=n<=100,1<=m<=10000)
第二行为n个整数表示n张卡牌的攻击力ai(1<=ai<=10000)
输出格式
对于每组测试数据输出一个整数表示最多能获得的point
样例输入
5 10
1 2 3 4 5
5 10
1 1 1 1 1
4 10
1 2 3 4