11789 - Texas Hold'em Poker Solitaire!

Background

John Anthony Good 常常與他的好友在星期五的晚上通霄打牌,他們玩的是現今最熱門的撲克牌遊戲 Texas Hold’em,在 Texas Hold’em 的遊戲中,每位玩家運用 2 張蓋著的牌來跟 5 張攤開的牌做組合,以組成一副最大的 5 張牌牌組,當然玩家們可以用蓋牌的兩張、其中一張或是都不用來組成。

一副撲克牌有 52 張牌,由四樣花色 (黑桃、紅心、磚塊和棉花) 以及每樣花色 13 支牌 (由小到大依序為 2、3、4、5、6、7、8、9、T、J、Q、K 和 A) 所組成。玩家可出的牌型只能依照下面其中一種:

同花順 (Straight Flush) :五張牌數字連續並且相同花色。例:6H、7H、8H、9H、TH。注意 A 可以當作最小的牌接在 2 之後,例如:AS、2S、3S、4S、5S。如果出現兩個以上的同花順,則比較牌組中最大的牌,上述兩例中前者大於後者。

鐵支 (Four of a Kind) :其中四支牌為相同數字。例:AS、AD、AH、AC、3S。如有兩者以上則比較四支牌的數字大小,然而為了避免打平的情況發生,則再需比較餘下一張牌的大小。

葫蘆 (Full House) :其中三張牌為相同數字,餘下二張為另一組相同數字。例:7C、7S、7D、KH、KS。如有兩者以上則比較三張相同牌的數字大小,為了避免打平的情況發生,則再需比較餘下一對牌的大小。

同花 (Flush) :五張牌為相同花色。例:5D、AD、KD、7D、QD。如有兩者以上則比較最大的牌,其次再比較第二大的牌,以此類推。

順子 (Straight) :五張連續數字的牌。例:TH、JD、QC、KD、AS。注意 A 也可以當作最小的牌接在 2 之後。

三條 (Three of a Kind) :三張相同數字的牌。例:QS、QH、QC、2D、3C。如有兩者以上則比較三張相同牌之大小,為了避免打平的情況發生,再比較其餘最大的牌,以此類推。

兩對 (Two Pair) :各有兩副兩張相同數字的牌。例:2C、2H、6C、6S、4D。如有兩者以上則比較數字最大的一對牌,如果相同則比較另一對。若兩對數字皆相同,則比較剩下那一支牌。

一對 (One Pair) :有一對牌的數字相同。例:2C、2H、4H、QH、KD。如有兩者以上相同則先比較一對的數字大小,接著比較餘下最大的牌,以此類推。

散牌 (High Cards) :與上述皆不成立的手牌。例:3H、7D、JD、QD、AC。若有兩者以上則先比較最大的牌,再比較第二大,以此類推。

John Anthony 每次和他的朋友打賭 5 歐元,但他總是賭輸,有時是因為他所認為自己的手牌比實際上來的低所導致,特別是當他拿到順子的時候。

The Problem

為了讓他自己的牌技進步,John Anthony 創造了一個單人玩的牌戲,他先將牌洗均勻,然後拿出其中的 49 張牌攤開排成 7×7 的矩形。以下例來說明:

2C KC 3D 7S 7H 5D 6D
2H 7D 4H 4S TS 3H 8S
3S 5H AD 5S 6S 3C 9C
9S JC QC KD JH KS QS
6C 8H AC 2S 6H AH KH
TC AS 9H QD 7C 4C 8C
TH 2D JS 9D 8D 5C JD

這時,他檢查每一橫列 (從上到下)、每一直行 (由左至右) 以及兩條對角線 (先檢查從左上至右下,再檢查從左下至右上) ,這 16 組牌組中,John 試著挑出其中 5 張讓這 5 張變成最大的牌組 (在Texas Hold’em中)。現在,他正央求你寫一個程式來確認他所選出的牌是不是最大的。

The Input

輸入的第一行包含一個整數代表有幾筆測試資料。每組測資間被一行空白行分開,測資共有七行,每行有七張被空白隔開的牌,每張卡代表它的大小以及花色 (大小在前花色在後)。

The Output

對於每組測資,你必須輸出一行訊息。首先,輸出包括最好牌組的該七張牌 (若是橫列和對角線從左至右輸出,若是直行則由上往下輸出),之後空白兩格,再輸出最好的牌組 (相同順序下)。最後,兩格空白,輸出牌型名稱 (High CardsOne PairTwo PairThree of a KindStraightFlushFull HouseFour of a Kind 或者 Straight Flush)。為了避免兩個相同的答案,應先印出在 John Anthony 的檢查順序中首先出現的牌組。

Sample Input

4

9H 4H TD 5H QC 7H KC
7S TS JS 8S 6D 2C 5C
QD 5S 7D KH 4S 8D 2H
TH AD QH 3D KD 9C 4D
5D 9S 8H JH AH 3S 6C
JC 7C AS 6H TC KS 8C
6S QS 2S 4C 9D AC JD

2C KC 3D 7S 7H 5D 6D
2H 7D 4H 4S TS 3H 8S
3S 5H AD 5S 6S 3C 9C
9S JC QC KD JH KS QS
6C 8H AC 2S 6H AH KH
TC AS 9H QD 7C 4C 8C
TH 2D JS 9D 8D 5C JD

9D AS KS KD AC 8D TH
AH JS 9H TC 2C QH 5S
7D JH 8C 3H 7C 5H 6H
5C 8S TS 2D QC KH 2H
JC 4H 4D 8H 2S 4C 3S
9C TD 9S 3C 7H 3D QS
KC 4S AD JD 6S 7S QD

6H JH 4H AC 5H TS 7D
AH 6S 5S 6C 4C 5D 8S
JC 8H AD 9S TC 9D 4D
8D 7C 6D 3D 8C KC 7H
4S TD 5C JD QD KD QS
9C TH 3C 2S AS QC 3H
2C 9H 3S 2D JS 7S KS

Sample Output

TH AD QH 3D KD 9C 4D  TH AD QH KD 9C  High Cards
6C 8H AC 2S 6H AH KH  6C AC 6H AH KH  Two Pair
JC 4H 4D 8H 2S 4C 3S  JC 4H 4D 8H 4C  Three of a Kind
JH 6S 8H 7C TD TH 9H  JH 8H 7C TD 9H  Straight