hitwh 2019 新生赛 E EdChu 与炸金花

hitwh 2019 新生赛 E EdChu 与炸金花

描述

EdChu 是一代赌怪,最近他在参加一个扑克比赛,比赛项目是国内热门牌类游戏——“炸金花”,炸金花的规则是每人抽三张牌(不含大小王),手牌大小由牌型和点数点数,具体牌型规则如下:

  1. 豹子:三张点相同的牌。例:AAA、222。
  2. 顺金:花色相同的顺子。例:黑桃 456、红桃 789。最大的顺金为花色相同的 AKQ,最小的顺金为花色相同的 32A。
  3. 金花:花色相同,非顺子。例:黑桃 368,方块 A45。
  4. 顺子:花色不同的顺子。例:黑桃 5 红桃 6 方块 7。最大的顺子为花色不同的 AKQ,最小的顺子为花色不同的 32A。
  5. 对子:两张点数相同的牌。例:223,334。
  6. 单张:三张牌不组成任何类型的牌。

牌型大小比较如下:

  1. 豹子 > 顺金 > 金花 > 顺子 > 对子 > 单张。
  2. 豹子、金花、对子、单张的比较,按照顺序比点的规则比较大小。 牌点从大到小为:A、K、Q、J、10、9、8、7、6、5、4、3、2,各花色不分大小。
  3. 顺金、顺子按照顺序比点。AKQ > KQJ >…> 32A。
  4. 同种牌型,对子时先比对子的大小,若对子相同则比剩下的单张大小,其它牌型比最大的牌张,如最大牌张相同则比第二大的张,以此类推。
  5. 当两牌型大小完全相同时,姓名字典序大者排名靠前。

字符串字典序的定义为:

字符串 \(s < t\) 当且仅当存在 \(i\) 满足对于任意 \(j < i\),\(s_j = t_j\),且 \(s_i < t_i\)。

通俗的解释为:

先比较第一个字符,若第一个字符不同,第一个字符 ASCII 值小的字符串字典序小,第一个字符ASCII 值大的字符串字典序大;如果第一个字符相同,那么比较第二个、第三个乃至后面的字符。如果比到最后两个单词不一样长(比如,sighsight),那么字符串长度短者字典序小。

你可以直接使用 C 语言中的 strcmp() 函数或 C++ 中 string< 来完成字符串字典序的比较。

现在 EdChu 通过强大的技能知道了其他所有选手的手牌,他想知道其他所有选手根据手牌大小的排名是什么样的。

输入

第一行包含一个整数 \(T(1 \le T \le 100)\),\(T\) 表示测试样例的组数。

对于每组数据,第一行包含一个整数 \(n(1 \le n \le 100)\),\(n\) 表示改组样例参赛选手的数量。

接下来 行,每行包含四个字符串 \(S(1 \le |S| \le 10), t_1, t_2, t_3\),\(S\) 为该选手的姓名,保证输入的姓名各不相同,\(t_1,t_2,t_3\) 表示该选手的手牌,用小写字母 a、b、c、d 分别代表红桃、黑桃、方片和梅花四种花色,用 A、K、Q、J、10、9、8、7、6、5、4、3、2 分别代表牌点,每张手牌用花色和牌点的组合表示,比如 a10 表示红桃 10,bK 表示黑桃 K。

输出

对于每组测试样例,输出 \(n\) 行,第 \(i\) 行包含一个字符串 \(S\),\(S\) 为排名第 \(i\) 的选手姓名。

输入样例

1
4
LFhase aQ aK aA
lxdlam bQ bK bA
cqssssss a2 b3 c5
songer d5 d7 d8

输出样例

lxdlam
LFhase
songer
cqssssss

样例解释

LFhase 与 lxdlam 的手牌都是 AKQ 的顺金,大小相同,但 lxdlam 的字典序更大('l' 的 ASCII 值大于 'L'),所以排名靠前,songer 的手牌是金花排第三,cqssssss 的手牌是单牌排第四。

信息

ID
1004
难度
9
分类
(无)
标签
(无)
递交数
10
已通过
3
通过率
30%
上传者