HZNUOJ

Ushio的游戏

Tags:
Time Limit:  1 s      Memory Limit:   256 MB
Submission:227     AC:54     Score:96.84

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!

Author

CHEN, Yupeng

Source

杭州师范大学第十届程序设计竞赛