#Lutece3300. 羊了个羊
羊了个羊
Description
深呼吸,现在让我用十秒钟告诉你题意:
现在 Redcrown 在玩羊了个羊,还剩 种 张卡,槽全空,没有道具,请问他能赢吗?
如果你还没理解这道题,别急,请深吸亿口气,放首《普通的 disco》,让我慢慢告诉你羊了个羊怎么玩。
你现在手上有一个口袋,里面可以装 张卡。当你的口袋中存在三张一样的卡时,这三张卡就会被清除。为了简化,每张卡都是一个 的方形。卡牌之间可以相互覆盖。对于任何一张卡 A,如果它不被任何一张卡覆盖,则称 A 为活卡,否则称为死卡。当一张死卡上方的所有卡被拿了之后,他会变成活卡。
游戏场可以看成是一张大坐标纸,为了方便,这里用 个数表示 个不同的可能有数的方格。场上有 张卡,一共四种卡,每种有三张,他们被分成了若干个互不重叠的堆。每张卡都和方格对齐,这些卡将被按顺序叠放在游戏场上。你可以做以下操作直到场上不剩卡:
- 任选一张活卡,将其从游戏场上清除,并将其放入你的口袋中。
若你的口袋中有 张卡且都不能被清除,你就输了。若游戏场上不剩任何一张卡,你就赢了。
众所周知,这个游戏很容易无解。现在 Redcrown 好不容易玩到只剩 张卡,面对着这个游戏场,如果他足够聪明,请问他有机会赢吗?
Input
输入有 行,第 行有一个整数 和一个大写字母 (),表示第 张卡所在的堆号和卡的种类,第 张在第 张卡放好了之后再放置。输入保证每种字母出现恰好三次。
Output
若 Redcrown 能赢,输出 YES
,否则输出 NO
,区分大小写。
Samples
1 A
1 B
1 C
1 D
1 A
1 B
1 C
1 D
1 A
1 B
1 C
1 D
NO
1 A
1 A
2 A
2 B
3 B
3 B
4 C
4 C
5 C
5 D
6 D
6 D
YES
Note
对于样例一,由于卡和卡之间的覆盖,这里你只能从第 张卡开始拿,然后拿第 张,第 张……最后你的口袋里会有七张卡,每一张卡都不能消除,故失败。
请注意样例一只有一叠卡,最上面的可以拿的是 D
。
对于样例二,要注意,和真正的羊了个羊不同,这个游戏的卡只有「重叠」和「相离」两种关系,例如第 张卡和第 张卡相离。
Resources
电子科技大学第十三届 ACM 趣味程序设计竞赛