#N0091. 梦幻金花【2022NOIP模拟赛】

梦幻金花【2022NOIP模拟赛】

问题描述

Foolish不喜欢喝酒,但Foolish的朋友们喜欢。

他们喝酒的时候喜欢玩一个扑克游戏。

游戏规则是这样的:

从一幅扑克牌(不含大小王,共5252张)中,随机发33张牌到每个玩家手上,然后,每个玩家可以任意想象自己抽到了这幅扑克牌中的另外两张牌在手,与自己手上的33张牌组成恰好55张,以构成一幅“最大”的手牌。

两幅手牌比较大小的规则是这样的(从大到小):

img

其中,顺子不能向上越过'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,他无法获胜。

输入格式

第一行输入一个数字TT

接下来TT行,每行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%的数据:T1000T\leq 1000。

对于100%的数据:T105T\leq 10^5

为了让大家可以更勇于尝试此题,本题的得分方式采取SPJ的形式,具体的来说,如果你完全算对,则会得到这个数据100%的分数,如果只是部分正确,正确率是PP(正确率指的是你在TT组数据下一共有百分之多少的数据算对了),

那么你可以获得这个测试点min(90%,Pmax(T/100,100))\min(90\%,P^{\max(T/100,100)})的分数。

下面是几个例子:

T=1000T=1000

你答对了999组,可以获得90%的分数,

你答对了998组,可以获得82%的分数,

你答对了997组,可以获得74%的分数,

你答对了996组,可以获得67%的分数,

你答对了995组,可以获得60%的分数。

T=100000T=100000

你答对了99900组,可以获得37%的分数。

HINT

HINT1:

保证两个人抽到的牌一定是52张扑克牌中的6张,但是按游戏规则,每个人可以想象的牌,只需要跟自己手上的三张牌不同即可,并不需要保证跟对方的牌也不同。

HINT2:

对于两副牌的比较大小规则的额外解释:

1.首先比较两幅牌的牌型,如果牌型不一致,则按牌型优先级比较大小。

2.如果牌型一致,则按照其内每一种牌的点数大小来比较。(优先比较三张一样的牌,其次比较两张一样的牌,其次比较单张,同一类的牌,按点数从大到小比较)。

例如,♥3♠3♣2♠2♠A,则先拿33跟对方的牌进行比较,再拿22跟对方进行比较。

3.如果进行完上两步,依旧没有分出大小,则是平局。

4.在比较大小这一件事上,花色是不重要的。