#P2542. Fool Game

    ID: 1543 远端评测题 1000ms 64MiB 尝试: 2 已通过: 0 难度: 10 上传者: 标签>模拟搜索Northeastern Europe 2000Far-Eastern Subregion

Fool Game

本题没有可用的提交语言。

描述

“傻瓜”游戏使用一套小型的扑克牌来玩,这套牌包含九个牌级——四种花色(红桃(Hearts)、黑桃(Spades)、方块(Diamonds)和梅花(Crosses)) 中的6、7、8、9、0(即10)、J(杰克)、Q(皇后)、K(国王)、A(王牌)。例如,黑桃皇后记为QsQs,方块10记为0d0d。其中一种花色被指定为王牌花色。在游戏中,一张牌能击败另一张牌,当且仅当它们花色相同且前者牌级更高,或者前者是王牌花色而后者不是。

在游戏中,出牌流程如下。首先,第一个玩家将他的一张牌放在桌上,然后第二个玩家可以用他手中的一张牌来击败这张牌(将他的牌放在上面),或者如果他没有合适的牌,就拿走桌上的这张牌。如果这张牌被击败了,第一个玩家可以从他剩下的牌中翻出任意一张与桌上已有的任何一张牌牌级相同的牌。这张新翻出的牌反过来又可能被击败,或者连同桌上的其他所有牌一起被拿走,依此类推。例如,如果第一个玩家有牌6s6s6d6dQhQhKdKd,第二个玩家有牌6h6h7h7h0s0sQdQd,并且红桃是王牌花色,那么第一个玩家可以出KdKd,这张牌会被6h6h击败,然后翻出6s6s,被0s0s击败,接着翻出6d6d,被QdQd击败,最后出QhQh7h7h无法击败它,所以第二个玩家必须拿走它。

你的任务是编写一个程序,给定王牌花色以及第一个玩家和第二个玩家的牌,为第一个玩家确定这样一种出牌方式,最终使得第二个玩家不得不拿走桌上的牌。

如果有不止一种这样的出牌方式,程序必须找出牌级最小的那一种。如果有几种牌级最小的出牌方式,程序必须按照第一段中提到的花色顺序(即h<s<d<ch < s < d < c)选择花色最靠前的那张牌。在上面的例子中,第二个玩家可以用7h7h击败KdKd,从而阻止第一个玩家进一步翻牌。另一方面,出QhQh这张牌会立即被第二个玩家拿走。

输入

在输入文件的第一行有一个单独的字符hhssddcc,用于确定王牌花色。在第二行有一个字符串表示第一个玩家的牌,在第三行有一个字符串表示第二个玩家的牌。所有的牌都是不同的,并且两个玩家的牌数相同。

输出

输出文件必须包含单独一行,要么是要出的一张牌,要么是字符串“NO”(如果程序无法找到这样的出牌方式)。

输入数据 1

s
As 7h 8d Jc
Jd 8s 7c 0c

输出数据 1

7h

来源

2000年东北欧地区赛,远东分区赛