陶陶最近在玩这样的一种卡牌游戏,具体游戏规则如下:
- 卡牌中有若干张A/2/3/4/5/6/7/8/9/10/J/Q/K牌,点数分别为1至13点
- 弃置一张卡牌,并对敌军造成伤害,卡牌所能造成的伤害为卡牌的点数
初始时陶陶会获得N张卡牌,并且会产生一张生命值为 M的敌军卡牌,陶陶需要利用自己的手牌将敌军消灭,在消灭敌军的同时需要保证自己所剩下的卡牌点数之和尽可能大,陶陶想知道自己在消灭敌军完后剩余卡牌点数之和的最大值(若无法消灭,请输出-1),请你帮帮他。
陶陶最近在玩这样的一种卡牌游戏,具体游戏规则如下:
初始时陶陶会获得N张卡牌,并且会产生一张生命值为 M的敌军卡牌,陶陶需要利用自己的手牌将敌军消灭,在消灭敌军的同时需要保证自己所剩下的卡牌点数之和尽可能大,陶陶想知道自己在消灭敌军完后剩余卡牌点数之和的最大值(若无法消灭,请输出-1),请你帮帮他。
第一行为两个整数N和M,表示初始时卡牌数量以及敌军卡牌生命值
第二行为N个整数,表示各张卡牌的类型
输出一个整数,表示陶陶在消灭敌军完后剩余卡牌点数之和的最大值(若无法消灭,请输出-1)
输入
Input1: 4 5 A 2 4 5 Input2: 4 5 2 2 J K Input3: 4 5 A A A A
输出
Output1: 7 Output2: 17 Output3: -1
数据范围:
$1 \leq N \leq 10^6,1 \leq M \leq 10^6,1 \leq N*M \leq 10^8$
样例解释:
对于样例1:弃置点数为1和4的两张卡牌A和4消灭敌军,剩下点数分别为2和5,此时卡牌点数之和为7(弃置方法不唯一,也可以直接弃置点数为5的卡牌5消灭敌军)
对于样例2:弃置点数为11的卡牌J消灭敌军,剩下点数分别为2、2和13,此时卡牌点数之和为17
对于样例3:无法消灭敌军,此时输出-1
(更新题目测试数据,解决原先部分代码在读入数据时可能出现的问题)