25. 牌型比大小

牌桌上有A和B兩位玩家進行牌型比大小,遊戲開始時會先各發給每人2張牌,接著再發4張牌到牌桌上。玩家需要從自己有的2張牌和牌桌上的4張牌中,選出5張牌湊出最大的牌型。最後比較玩家A和玩家B各自最大的牌型,輸出贏家名稱與贏家牌型編號。

每張牌由花色與牌面組成,花色與牌面的表示如下:
牌面: A、2~10、J、Q、K
花色:S (Spade,黑桃),H (Heart,紅心),D (Diamond,方塊), C (Club,梅花) 
例如:S7 表示黑桃7

牌型編號(編號越大代表牌型越大):
(1) High Card : 單一張牌。
(2) One pair: 兩張牌數字一樣。
(3) Two pairs : 兩組 Pair 的牌。
(4) Three of a kind : 三張牌數字一樣。
(5) Straight : 數字連續的五張牌,頭尾相接亦視為Straight。例如[2, 3, 4, 5, 6],..,[Q,K , A, 2, 3], [K , A, 2, 3, 4], [A, 2, 3, 4, 5]。
(6) Flush : 五張同一花色的牌。
(7) Full House : Three of a Kind 加一組 Pair。
(8) Four of a kind: : 四張牌數字一樣。
(9) Straight flush : 數字連續的五張牌且花色一樣。

【輸入說明】
第1行:輸入一行字串,包含2張牌,每張牌中間以空白隔開,表示A拿到的2張牌
第2行:輸入一行字串,包含2張牌,每張牌中間以空白隔開,表示B拿到的2張牌
第3行:輸入一行字串,包含4張牌,每張牌中間以空白隔開,表示牌桌上的牌
 
範例輸入說明:
CA H7 (玩家A拿到梅花A、紅心7)
S2 SA (玩家B拿到黑桃2、黑桃A)
SJ SK SQ HA (牌桌上有黑桃J、黑桃K、黑桃Q、紅心A)

【輸出說明】
第1行:輸出贏家名稱及牌型編號,以空白隔開

範例輸出說明:
B 9

A有CA H7,牌桌上有SJ SK SQ HA。從中選5張有以下組合
CA SJ SK SQ HA 為 One pair (A手上的CA和牌桌上的SJ、SK、SQ、HA組成5張牌)
H7 SJ SK SQ HA 為 High Card (A手上的H7和牌桌上的SJ、SK、SQ、HA組成5張牌)
CA H7 SJ SK SQ 為 High Card (A手上的CA、H7和牌桌上的SJ、SK、SQ組成5張牌)
CA H7 SJ SK HA 為 One pair (A手上的CA、H7和牌桌上的SJ、SK、HA組成5張牌)
CA H7 SJ SQ HA 為 One pair (A手上的CA、H7和牌桌上的SJ、SQ、H組成5張牌)
CA H7 SK SQ HA 為 One pair (A手上的CA、H7和牌桌上的SK、SQ、HA組成5張牌)
故A最大的牌型為 One pair,編號為2

B有S2 SA,牌桌上有SJ SK SQ HA。從中選5張有以下組合
S2 SJ SK SQ AH 為 Straight (B手上的S2和牌桌上的SJ、SK、SQ、HA成5張牌)
SA SJ SK SQ AH 為 One pair (B手上的SA和牌桌上的SJ、SK、SQ、HA組成5張牌)
S2 SA SJ SK SQ 為 Straight flush (B手上的S2、SA和牌桌上的SJ、SK、SQ組成5張牌)
S2 SA SJ SK HA 為 One pair (B手上的S2、SA和牌桌上的SJ、SK、HA組成5張牌)
S2 SA SJ SQ HA 為 One pair (B手上的S2、SA和牌桌上的SJ、SQ、HA組成5張牌)
S2 SA SK SQ HA 為 One pair (B手上的S2、SA和牌桌上的SK、SQ、HA組成5張牌)
故B最大的牌型為 Straight flush,編號為9

A和B比較各自有的最大牌型,B的牌型較大,故輸出B 9

【特別要求】
1. 如果牌桌上的牌以及A和B手上的牌中有不合法的輸入,如不存在的牌面、花色,則輸出 "Error input"
2. 如果牌桌上的牌以及A和B手上的牌重複,即所有牌當中有兩張以上牌面跟花色一模一樣,則輸出"Duplicate deal"
3. 如果"Error input"和"Duplicate deal"同時發生,則輸出"Error input"
4. 如果最後A和B選擇的牌型相同,則輸出"Tie"

【測試資料一】
輸入:
SA CA
S7 C7
C2 R5 D6 R9

輸出:
Error input

【測試資料二】
輸入:
SA CA
S7 C7
C2 CC5 D6 C9

輸出:
Error input

【測試資料三】
輸入:
D4 D5
D6 S7
C10 HQ D6 SJ

輸出:
Duplicate deal

【測試資料四】
輸入:
SK C2
F10 CA
C2 CC3 C6 S4

輸出:
Error input

【測試資料五】
輸入:
D4 H9
S9 C10
H5 H6 H8 H7

輸出:
A 9

【測試資料六】
輸入:
HK C9
SJ C3
DA DQ H10 CK

輸出:
B 5 

【測試資料七】
輸入:
S4 C4
H2 C9
C2 D4 H4 S8

輸出:
A 8 

【測試資料八】
輸入:
CK D10
SQ H2
S3 H7 D5 CA

輸出:
Tie

【測試資料九】
輸入:
C5 C8
S6 H6
D6 D5 S5 H5

輸出:
A 8

【測試資料十】
輸入:
S6 C9
S5 H4
H6 H5 D5 C7

輸出:
B 4 

【隱藏測試資料一】
輸入:
F5 U6
G9 H8
S2 C4 T6 C10

輸出:
Error input

【隱藏測試資料二】
輸入:
S6 CD9
SG5 H4
H6 HH5 DR5 CH7

輸出:
Error input

【隱藏測試資料三】
輸入:
C5 C9
C4 S6
D2 C4 H8 H10

輸出:
Duplicate deal

【隱藏測試資料四】
輸入:
F5 C6
H9 CK
CC10 CK HQ DJ

輸出:
Error input

【隱藏測試資料五】
輸入:
D2 C9
S4 H5
D4 D5 D3 D6

輸出:
A 9 

【隱藏測試資料六】
輸入:
D5 H3
DA SJ
S8 S9 S7 S6

輸出:
B 6

【隱藏測試資料七】
輸入:
CQ D8
DJ HA
SJ H10 DA CK

輸出:
A 5

【隱藏測試資料八】
輸入:
S10 D9
SJ SQ
H10 HJ D10 C10

輸出:
A 8

【隱藏測試資料九】
輸入:
D6 H4
S7 H2
H7 D2 C7 C2

輸出:
B 7

【隱藏測試資料十】
輸入:
HJ S6
D3 D6
SA HK H2 CQ

輸出:
Tie