Start: Dec, 04, 2016 00:00:00
杭州师范大学第十届程序设计竞赛—补题
End: Dec, 30, 2016 13:00:00
Time elapsed:
Time remaining:

Ushio的游戏 1900

Time Limit:  1 s      Memory Limit:   256 MB
Submission:56     AC:28     Score:1

Description

Nagisa,如果你还在的话我们就能凑一起打麻将了,还玩什么扑克牌啊!

——Okazaki Tomoya

Okazaki Ushio是一个乖巧懂事的小女孩。今天,在幼儿园里,Ushio的老师Fujibayashi Kyou教了Ushio一个名为“Five-card Stud”(即我们常说的“梭哈”)的扑克牌游戏。Ushio非常开心,回到家后便缠着爸爸Okazaki Tomoya一起玩扑克牌。

但是在玩牌的过程中,Ushio发现,这个游戏的规则对她来说实在是太复杂了,每玩一局,Ushio总是要算好久才能算出胜负。你能写个程序帮助Ushio计算游戏胜负吗?

Five Card Stud”的游戏规则如下:

双方各发5张牌,5张牌可构成9种不同牌型,不同牌型有大小之分,这9种牌型按从小到大分别是:

1.无对(Zilch):手中都是单牌(即不符合2~9中任何一条规则)。如果双方都是无对,则分别拿出点数最大的牌来比,大的一方赢(如果相等则比较第二大,以此类推)。

2.一对(One Pair):5张牌中有且仅有2张一样点数的牌称为一对。如果双方都是一对,则比较谁的对子的点数较大,如果对子一样大,则将非对子的3张牌按照无对的比较规则来进行大小比较。

3.两对(Two Pairs):5张牌中有2对具有相同点数的牌。若双方都是两对,先比较双方最大的一对,若最大的一对相等,则比较次大的一对,若次大的一对也相等,则比较单牌的大小。

4.三条(Three of a kind):5张牌中有且仅有3张相同点数的牌,且其余两张牌不成对。若双方都是三条,则比较三条的大小。(注:由于一共只有4张点数相同的牌,故不可能出现双方三条相等的情况,后面的满堂红和四条同理)

 

5.顺子(Straight):5张顺连的牌。若双方都是顺子,比较双方最大的那张牌的点数。(注:A,2,3,4,5不构成顺子,10,J,Q,K,A才是顺子)

6.同花(Flush):5张花色一样的牌。若双方都是同花,则按照无对的比较方法进行大小比较。

7.满堂红(Full House):3张同一点数的牌加上1对其它点数的牌。若双方都是满堂红,则比较双方牌中3张相同牌的点数大小。

8.四条(Four of a Kind):5张牌中有且仅有4张相同点数的牌。若双方都是四条,则比较双方牌中4张相同牌的点数大小。

9.同花顺(Straight Flush):花色相同的顺子。若双方都是同花顺,则比较双方最大那张牌的点数。

接下来双方出示自己的5张牌,先按牌型进行大小比较,牌型大的赢。若牌型相同,则按牌面大小进行比较(具体比较规则见上)。值得一提的是,这里使用的是只有52张的扑克牌(即没有大小王),且点数的大小顺序为:A>K>Q>J>10>9>8>7>6>5>4>3>2,扑克牌里一共有四种花色,分别为黑桃(Spade)、红桃(Heart)、草花(Club)和方块(Diamond)(在输入时分别用其首字母代表对应花色)。

Input

首先输入一个正整数T,代表T轮游戏。

对于每一轮游戏,输入10张牌,每张牌由“[点数][花色]”组成,其中前5张为Ushio的牌,后5张为Tomoya的牌。

Output

Ushio赢,输出“Ushio shouri!”;若Tomoya赢,则输出“Papa shouri!”;若平局,输出“Mama!”

Samples

input
3 KD 8C 8S 4C 7S 8D 10S KS 6S JD JS 5H QS 10S 7H JD QH 10D 7S 6D AD 2C 3D 4D 5D AS 2S 3C 4S 5H
output
Ushio shouri! Papa shouri! Mama!