#813. 混子的杀戮尖塔

混子的杀戮尖塔

题目描述

SLJT

混子最喜欢的卡牌类rougelite就是杀戮尖塔了,但是混子因为选择恐惧症,总是在选牌和遗物的时候犹豫不决,总是不知道使用药水,总是在莫名其妙的情况下突然暴毙,(PS:其实还是因为太菜了),于是混子决定制定了一个新的规则来进行游戏。

混子从牌库只选择了一部分卡牌来进行游戏,并且每回合进行战斗的时候的时候,只有一方可以出手,且若条件满足卡牌规则,必须出牌,若出牌条件不满足,则直接跳过

------------------------------------------------------规则的分割线-------------------------------------------------------------

规则

我方手段

1.劈砍(PK):对敌方造成6*力量值的伤害。

2.防御(FY):增加8点防御值。

3.能量(NL):增加两点能量值。

4.献祭(XJ):损失3点生命值,增加两点能量。

5.屹立不倒(YLBD):增加30点防御值,消耗两点能量。

6.突破极限(TPJX):将你的力量值翻倍,消耗两点能量。

7.恶魔形态(EMXT):每回合增加2点力量值,直到恶魔状态解除,消耗3点能量,发动后下回合开始生效。

8.堡垒(BL):你的防御值将不会清空,直到堡垒状态结束,消耗2点能量,发动后立即生效。

9.痛击(TJ):造成8*力量值的伤害,并在下次对敌方造成伤害翻倍,消耗两点能量。

10.狂暴(KB):下两次敌方会对你造成双倍伤害,接下来每回合会获得1点能量,直到狂暴模式结束,发动后下回合开始生效。

11.燃烧(RS):增加2点力量,消耗1点能量。

12.净化(JH):将敌方力量初始化为1,消耗2点能量。

敌方手段

1.伤害X(SHX):对我方造成X*敌方力量值的伤害。

2.清除力量(QCLL):将我方的力量值初始化为1。

3.清除状态(QCZT):将我方的有利BUFF清空(包括恶魔状态,堡垒,痛击,狂暴)。

4.仪式(YS):敌方力量加1点。

防御值规则:如果我方存在防御值,对方的伤害将会先扣除我方的防御值,若防御值不够,则在扣除防御值的基础上,再扣除生命值。若防御值连续存在超过3回合,则清除所有防御值,若堡垒状态存在,则可以保持防御值不被清空,直到堡垒状态结束(堡垒状态结束后3回合后才清除防御值)。

力量规则:力量值最多不能超过10,当力量值超过10后,力量值最大为10,并且所有有关力量的增益卡牌和状态将会无效。

若双方任意一方生命值归0,则立即结束游戏,剩余操作直接跳过。

------------------------------------------------------规则的分割线-------------------------------------------------------------

于是混子开始了一场游戏

混子的初始生命值是H,初始能量值为2,初始力量值为1,初始防御值为0

敌方的初始生命值为D,初始力量值为1,无能量值和防御值。

接下来进行N回合战斗,每回合给出一个数字t,一个字符串x,当t为0时表示我方出牌,当t为1时表示敌方出牌。

如果最后混子能将敌方消灭,则输出YES,并输出混子剩下的生命值,如果不能,则输出NO,并输出敌方剩下的生命值。

输入

混子的初始生命值H,敌方的初始生命值D,一个数字N,表示接下来将会有N回合战斗。

接下来N行,每行输入一个数字t,一个字符串x,当t为0时表示我方出牌,当t为1时表示敌方出牌,x表示当前的牌。

输出

如果最后混子能将敌方消灭,则输出YES,并输出混子剩下的生命值,如果不能,则输出NO,并输出敌方剩下的生命值。

样例

输入样例

20 20 4
0 PK
1 SH8
0 TJ
0 PK

输出样例

YES 12

数据范围

1<=H<=1e6

1<=D<=1e6

1<=N<=1e6