#N0091. 梦幻金花【2022NOIP模拟赛】
梦幻金花【2022NOIP模拟赛】
问题描述
Foolish不喜欢喝酒,但Foolish的朋友们喜欢。
他们喝酒的时候喜欢玩一个扑克游戏。
游戏规则是这样的:
从一幅扑克牌(不含大小王,共张)中,随机发张牌到每个玩家手上,然后,每个玩家可以任意想象自己抽到了这幅扑克牌中的另外两张牌在手,与自己手上的张牌组成恰好张,以构成一幅“最大”的手牌。
两幅手牌比较大小的规则是这样的(从大到小):
其中,顺子不能向上越过'A',或向下越过'2'。
如果两人的牌型是一致的,那么,按照关键牌组从大到小去比较,例如:
两人分别是:
♥A ♠A ♠3 ♦3 ♣9 , ♠K ♥K ♣3 ♥3 ♠10
则第一个人胜,因为一对A>一对K。
在这个游戏中,A>K>Q>...>2。
对于同点数,不同花色的牌,在游戏中视作一样大小的牌,但在输出中,黑桃>红桃>梅花>方块。
如果你想更具体的阅读比较大小的规则,可以看题目最下方的解释。
Karry为了赢这个游戏,买了一副透视眼镜,可以看到Galen的底牌。
为了羞辱Galen,Karry决定,每次都想象出两张__刚刚好__可以稳赢Galen的牌,请帮助Karry计算,想象出的那两张牌分别应该是什么,或者告诉Karry,他无法获胜。
输入格式
第一行输入一个数字。
接下来行,每行6个字符串,代表Karry和Galen的手牌。
每个字符串由花色+大小构成,'S'代表黑桃,'H'代表红桃,'C'代表梅花,'D'代表方块。
保证输入的每人的三张牌按__点数从小到大,花色从大到小__的顺序输入。
输出格式
对于每一组数据,输出五个字符串,输出规则跟输入的规则一致,表示答案,如果无法获胜,直接输出-1。
注意,本题中,数字10用字符'T'代替。
样例输入
3
S4 S5 S6 H3 H4 H5
S3 S4 S5 H3 H6 HA
S2 H2 C2 H5 C6 D7
样例输出
S4 S5 S6 S7 S8
S2 S3 S4 S5 S6
S2 H2 C2 C3 D3
样例解释
第一个样例中,Galen最大的手牌是同花顺♥3♥4♥5♥6♥7, Karry仅有一种策略赢他。
第二个样例中,Galen最大的手牌是同花♥A♥K♥Q♥6♥3,Karry构造的同花都比Galen小,只能构造一个同花顺来赢他。
第三个样例中,Galen最大的手牌是顺子♥5♣6♦7♠8♠9,Karry只有构造葫芦或四条才能赢,葫芦更小,因为2不够用了,只能是抽3。
数据分布
对于20%的数据:Galen的手牌总是三张一样点数的牌。
对于另20%的数据:Galen的手牌总是三张一样花色的牌。
对于前50%的数据:时限5s。
对于后50%的数据:时限2s。
对于70%的数据:
对于100%的数据:。
为了让大家可以更勇于尝试此题,本题的得分方式采取SPJ的形式,具体的来说,如果你完全算对,则会得到这个数据100%的分数,如果只是部分正确,正确率是(正确率指的是你在组数据下一共有百分之多少的数据算对了),
那么你可以获得这个测试点的分数。
下面是几个例子:
,
你答对了999组,可以获得90%的分数,
你答对了998组,可以获得82%的分数,
你答对了997组,可以获得74%的分数,
你答对了996组,可以获得67%的分数,
你答对了995组,可以获得60%的分数。
,
你答对了99900组,可以获得37%的分数。
HINT
HINT1:
保证两个人抽到的牌一定是52张扑克牌中的6张,但是按游戏规则,每个人可以想象的牌,只需要跟自己手上的三张牌不同即可,并不需要保证跟对方的牌也不同。
HINT2:
对于两副牌的比较大小规则的额外解释:
1.首先比较两幅牌的牌型,如果牌型不一致,则按牌型优先级比较大小。
2.如果牌型一致,则按照其内每一种牌的点数大小来比较。(优先比较三张一样的牌,其次比较两张一样的牌,其次比较单张,同一类的牌,按点数从大到小比较)。
例如,♥3♠3♣2♠2♠A,则先拿33跟对方的牌进行比较,再拿22跟对方进行比较。
3.如果进行完上两步,依旧没有分出大小,则是平局。
4.在比较大小这一件事上,花色是不重要的。