408569: GYM103186 L 高低奥马哈扑克
Description
奥马哈扑克 (Omaha Hold'em) 是一种纸牌游戏,在许多地方类似于德州扑克(Texas Hold'em)。即使你玩过德州扑克,也请仔细阅读下面的内容,因为部分规则与德州扑克不同。
一群牛逼网友在玩高低奥马哈扑克 (Omaha Hi / Lo) — 一种奥马哈扑克的变体。在游戏的一开始,每位玩家手上会有 4 张底牌。接下来,和德州扑克相同,5 张公共牌会在 3 个阶段发出。这三个阶段分别为:连续发三张(翻牌,flop),单独发一张(转牌,turn)和最后一张(河牌,river)。所有玩家都能看到发出的公共牌,但只能看到自己的底牌。所有的牌都是从去掉大小王的标准的 52 张扑克牌牌堆中抽取的。一副标准的扑克牌包含了 4 种花色 :梅花(clubs)♣,方片(diamonds)♢,红心(hearts)♡,黑桃(spades)♠;每种花色 13 张牌,包括 Ace (A),King(K), Queen(Q),Jack(J) 和 从 2 到 10 的序数牌。每张牌有且仅有一张。
单张牌的排名从大到小如下:A, K, Q, J, 10, 9, 8, 7, 6, 5, 4, 3, 2。每个玩家需要从自己的底牌中选择恰好 2 张牌,从公共牌中选择恰好 3 张牌,组成最好的 5 张牌的牌型。
下面根据牌型大小升序介绍可能的 5 张牌的牌型,每种牌型中牌需按下文描述的顺序排列。下面描述的规则与常规的德州扑克相同。
- 高牌(Highcard):不满足以下任何一种牌型。按 $$$a_1 a_2 a_3 a_4 a_5$$$ 排列,满足 $$$a_1 > a_2 > a_3 > a_4 > a_5$$$。($$$a_i$$$ 表示 第 $$$i$$$ 张牌的排名)。
- 一对(Pair):有两张牌的大小相同。按 $$$a_1 a_2 a_3 a_4 a_5$$$ 排列,满足 $$$a_1 = a_2, a_3 > a_4 > a_5, a_1 \neq a_3, a_1 \neq a_4, a_1 \neq a_5$$$。
- 两对(Two Pairs):有两对牌的大小相同。按 $$$a_1 a_2 a_3 a_4 a_5$$$ 排列,满足 $$$a_1 = a_2, a_3 = a_4, a_1 > a_3, a_1 \neq a_5, a_3 \neq a_5$$$。
- 三条(Three of a kind):有三张牌的大小相同。按 $$$a_1 a_2 a_3 a_4 a_5$$$ 排列,满足 $$$a_1 = a_2 = a_3, a_4 > a_5, a_1 \neq a_4, a_1 \neq a_5$$$。
- 顺子(Straight):五张牌的大小连续。按 $$$a_1 a_2 a_3 a_4 a_5$$$ 排列,满足对于所有的 $$$1 \leq i \leq 4$$$,$$$a_i$$$ 恰好比 $$$a_{i + 1}$$$ 排名高 $$$1$$$。特别地,如果 $$$a_5$$$ 是 Ace,$$$a_4$$$ 可以是 $$$2$$$。在这个情况下, Ace 被认为比 $$$2$$$ 的排名低。
- 同花(Flush):五张牌的花色相同。按 $$$a_1 a_2 a_3 a_4 a_5$$$ 排列,满足所有五张牌的花色相同且 $$$a_1 > a_2 > a_3 > a_4 > a_5$$$。
- 葫芦(Full house):三张牌的大小相同,另外两张牌的大小相同。按 $$$a_1 a_2 a_3 a_4 a_5$$$ 排列,满足 $$$a_1 = a_2 = a_3, a_4 = a_5$$$。
- 四条(Four of a kind):四张牌的大小相同。按 $$$a_1 a_2 a_3 a_4 a_5$$$ 排列,满足 $$$a_1 = a_2 = a_3 = a_4$$$。
- 同花顺(Straight flush):五张牌的花色相同且大小连续。按 $$$a_1 a_2 a_3 a_4 a_5$$$ 排列,满足所有五张牌花色相同,且对于所有的 $$$1 \leq i \leq 4$$$,$$$a_i$$$ 恰好比 $$$a_{i + 1}$$$ 排名高 $$$1$$$。特别地,如果 $$$a_5$$$ 是 Ace,$$$a_4$$$ 可以是 $$$2$$$。在这个情况下, Ace 被认为比 $$$2$$$ 的排名低。
在比较两手牌时,先比较两手牌的牌型。例如,一手牌是四条,另一手牌是葫芦,那么四条永远赢葫芦。如果两手牌的牌型一样,则比较牌的大小。我们需要将牌按上述方式排序,并一张张地比较它们的大小。即先比较第一张牌的大小,大的赢。如果第一张牌一样大,再比较第二张牌的大小,以此类推。如果所有的五张牌都一样大,则计为平手。在比较大小时,不考虑花色。例如 ♣5,♢5,♡5,♠2,♣2 可以赢 ♢3,♠3,♡3,♢A,♡A。因为它们都是三条,我们将先比较相同的三个的大小。
下面的规则是德州扑克中没有的,请仔细阅读。
在高低奥马哈扑克中,玩家还需要使用小于等于 8 的牌进行比低牌。每个玩家需要从自己的底牌中选择恰好 2 张牌,从公共牌中选择恰好 3 张牌,组成最好的 5 张不成对的牌型。如果无法使用小于等于 8 的牌组成不成对的牌型,则该玩家不参与比低牌。
注意:比高和比低是相互独立的,选择可以不同。在比低牌时的单张牌的排名从大到小为:8, 7, 6, 5, 4, 3, 2, A。按 $$$a_1, a_2, a_3, a_4, a_5$$$ 排列,满足 $$$a_1 > a_2 > a_3 > a_4 > a_5$$$。同花和顺子不影响比小。
在比较两手牌时,先比较第一张牌的大小,小的赢。如果第一张牌一样大,再比较第二张牌的大小,以此类推。如果所有的五张牌都一样大,则计为平手。因此在比小时最好的牌型是:5,4,3,2,A,最差的牌型是:8,7,6,5,4。
当游戏进行到最后的比大小阶段,当前的底池为 $$$p$$$ 个筹码。如果没有玩家能参与比低牌,则奖池全部给在比高中获胜的玩家。如果有至少一名玩家可以比低,则奖池的一半 $$$\left\lceil \frac{p}{2} \right\rceil$$$ 分给比高中获胜的玩家,奖池的另一半 $$$\left\lfloor \frac{p}{2} \right\rfloor$$$ 分给比低中获胜的玩家。
如果在比高或比低时打平需要平分底池但无法平分,多余的筹码给位置靠前的玩家。即如果底池为 $$$p$$$,给 $$$n$$$ 个人平分,则位置最靠前的玩家赢得剩余的 $$$p - \left\lfloor \frac{p}{n} \right\rfloor n$$$ 个筹码。
现在,其它玩家已经弃牌,Alice 和 Bob 进行到了最后的比大小阶段。Alice 位置靠前,底池总筹码数为 $$$p$$$。已知两人的底牌和 5 张公共牌。你需要分别计算两人最后得到的筹码数。
Input第一行有一个整数 $$$T$$$ ($$$T \leq 500$$$),表示测试数据的个数。
对于每组数据,第一行有一个整数 $$$p$$$ ($$$10 \leq p \leq 1000$$$),表示底池的大小。第二行为 Alice 的底牌,第三行为 Bob 的底牌,第四行为公共牌。
牌之间用空格分隔,每张牌由两个字符组成,分别表示大小和花色。大小用 2,..., 9, T, J, Q, K, A 表示( T 代表序数牌 10),花色用 C, D, H, S 表示。
Output对于每组数据,在一行输出两个整数,中间以空格分隔,分别表示 Alice 和 Bob 赢得的筹码数。
ExampleInput2 233 KS 9H 6S 6C AC QS JH 8S KC KD 8C 5C TC 233 AS 2C 4H KH AC 2D 5D 5C 2S 3H JH JD 5HOutput
233 0 116 117Note
第一个样例中,Alice 在比高中的牌型为 ♣K,♢K,♠K,♣T,♡9(三条),Bob 在比高中的牌型为 ♣K,♢K,♣8,♠8,♣A(两对)。因此 Alice 在比高中取胜。两人均无法比低。所以 Alice 赢得所有底池。
在第二个样例中,Alice 以 ♠A,♠2,♡3,♡4,♡5 的牌型在比低中取胜,Bob 以 ♣5,♢5,♡5,♢J,♡J(葫芦) 的牌型在比高中取胜。因此两人将平分底池。