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 歐元,但他總是賭輸,有時是因為他所認為自己的手牌比實際上來的低所導致,特別是當他拿到順子的時候。
為了讓他自己的牌技進步,John Anthony 創造了一個單人玩的牌戲,他先將牌洗均勻,然後拿出其中的 49 張牌攤開排成 7×7 的矩形。以下例來說明:
|
|
這時,他檢查每一橫列 (從上到下)、每一直行 (由左至右) 以及兩條對角線 (先檢查從左上至右下,再檢查從左下至右上) ,這 16 組牌組中,John 試著挑出其中 5 張讓這 5 張變成最大的牌組 (在Texas Hold’em中)。現在,他正央求你寫一個程式來確認他所選出的牌是不是最大的。
輸入
輸入的第一行包含一個整數代表有幾筆測試資料。每組測資間被一行空白行分開,測資共有七行,每行有七張被空白隔開的牌,每張卡代表它的大小以及花色 (大小在前花色在後)。
輸出
對於每組測資,你必須輸出一行訊息。首先,輸出包括最好牌組的該七張牌 (若是橫列和對角線從左至右輸出,若是直行則由上往下輸出),之後空白兩格,再輸出最好的牌組 (相同順序下)。最後,兩格空白,輸出牌型名稱 (High Cards
、One Pair
、Two Pair
、Three of a Kind
、Straight
、Flush
、Full House
、Four of a Kind
或者 Straight Flush
)。為了避免兩個相同的答案,應先印出在 John Anthony 的檢查順序中首先出現的牌組。
範例輸入
|
|
範例輸出
|
|