1458: splay1的机器人

Memory Limit:128 MB Time Limit:1.000 S
Judge Style:Text Compare Creator:
Submit:1 Solved:1

Description

时间吞噬者是 Slay the Spire 的一种怪物,为了报复紫皮人,他通过某些手段获取了不属于他的的力量。就在刚才,他已经击败了尖塔前三强的角色们。
即将到达战场的是————刚刚启动完成的机器人。

杀戮尖塔是一款回合制卡牌游戏。由玩家先手。一旦玩家血量归 $0$ ,战斗失败。一旦怪物血量归 $0$ ,战斗胜利。(两方都无法归$0$算作战斗失败)。机器人(玩家)的血量固定为 $1$ ,时间吞噬者的血量固定为 $10^{114514}$ 。

机器人的牌库里共有 $4$ 种牌,我们将依次标号为$1,2,3,4$。卡牌具体效果如下:  


  • 1.生成一个闪电充能球(玩家回合结束时,对怪物造成 $3$ 点伤害,激发时,对怪物造成 $8$ 点伤害)。  
  • 2.生成一个冰霜充能球(玩家回合结束时,获得 $2$ 点格挡,激发时,获得 $5$ 点格挡)。  
  • 3.打出后,获得 $2$ 层雷暴(打出$3或4$号牌后,获得等同于打出时雷暴层数的闪电充能球。例如,当前有 $2$ 层雷暴,打出$3$号牌后,变为 $4$ 层雷暴,但结算后只生成 $2$个闪电充能球)。  
  • 4.打出后,获得 $2$ 层集中(每次因充能球造成伤害或获得格挡时,数值增加集中层数。例如:你有2点集中,那么你的闪电充能球在回合结束造成的伤害为$3+2=5$,在激发时造成的伤害为$8+2=10$,冰霜充能球同理)。效果优先于雷暴(先获得集中再因雷暴产生闪电充能球)。
  
注意:(产生充能球后,若充能球数量大于充能球栏位,则最早产生的充能球进行激发并消失,直到充能球数量不大于充能球栏位)。

战斗开始时,机器人牌库共有 $n$ 张牌,机器人拥有   $3$ 个充能球栏位,但没有任何充能球。每回合开始时,机器人按顺序从牌库里抽牌,直至牌库为空或手牌已经达到 $5$ 张。回合结束时将所有手牌按抽牌顺序放回。使用手中卡牌没有任何数量和顺序限制,但使用后卡牌删除。
例如,现在有牌库里有 $8$ 张牌,我们按顺序依次标号为  $1,2,3,4,5,6,7,8$  
- 第一次抽牌时,手中的牌依次为 $1,2,3,4,5$.  
- 若第一个回合不使用任何手牌,那么牌库变为$6,7,8,1,2,3,4,5$,下次抽取的牌依次为$6,7,8,1,2$.
- 若第一个回合使用所有手牌,那么牌库变为$6,7,8$,下次抽取的牌依次为$6,7,8$.
- 若第一个回合使用手牌$2,5$,那么牌库变为$6,7,8,1,3,4$,下次抽取的牌依次为$6,7,8,1,3$.

机器人回合结束后,时间吞噬者进行攻击,对机器人造成$ m $点伤害,由于机器人血量为 $1$ ,如果机器人的格挡低于 $m$ ,战斗失败。反之,则代表机器人防御住了这次攻击。注意,机器人出牌回合开始时,格挡值归$0$ 。 

机器人已经预先知道所有的卡牌的顺序,他将使用算法选择最优出牌顺序,请问作为尖塔第四强的他能否击杀时间吞噬者?  
如果能,请输出"YES"。如果不能,请输出"NO"。(皆不带引号)

Input

第一行两个整数,$n,m$。依次代表牌库的数量和时间吞噬者的伤害。  
第二行$n$个整数,第 $i$ 个数 $a_{i}$ 代表牌库第 $i$ 张牌的种类。

数据范围:  
$1 \le n \le 9$  
$0 \le m \le 30$  
$1 \le a_{i} \le 4$

Output

一行,一个字符串。 如果能击杀时间吞噬者,请输出"YES"。如果不能,请输出"NO"。(皆不带引号)

Sample Input Copy

9 11
2 2 2 2 1 3 4 4 4

Sample Output Copy

YES

HINT

一种合理的获胜方案如下:  
第一回合,抽到$2,2,2,2,1$,使用$4$张$2$号类型的牌。一个冰球被激发获得$5$点格挡,还剩下三个冰球,剩下的冰球回合结束时提供$3*2$点格挡。共$11$点格挡,可以防住攻击。  

第二回合,将抽到$3,4,4,4,1$。使用所有的$4$号牌和$1$号牌。得到$6$点集中,充能球变为$1$个闪电球,$2$个冰霜球。这样每回合都能获得$2*(2+6)$点格挡,造成$1*(3+6)$点伤害。能够击败时间吞噬者。

Source/Category