#bzoj2804. showhand

showhand

题目描述

原件1:tmp1.png

Y\text Y和小Z\text Z最近迷上了一种叫梭哈的扑克游戏。梭哈又称沙蟹,是英文Show Hand\text{Show Hand}的音译,是一种使用黑桃、红心、梅花、方片的A\text AK\text K5252张牌(没有大小王)来进行的扑克牌游戏。

和其他扑克游戏一样,梭哈的目的是得到最大的牌型并赢得牌局:每名玩家首先需要下基本的注额,之后将获得一张底牌,这张牌只有自己知道。普通梭哈游戏的规则是,在发完底牌后的第一轮时,每个玩家都将得到一张明牌(明牌是摆在台面上的,所有人都能看见),拥有最大明牌的玩家首先发言,他可以下注、不下注(让牌)或盖牌(放弃)也可以全压(梭哈),其他玩家可以跟注(有玩家全压时必须全压)、加注或盖牌(放弃),放弃的玩家将无法继续游戏,并且之前押的筹码无法取回。而全压之后将直接把每个人的手牌补充至5张进行最后的判定:第二圈、第三圈和第四圈的进程与第一圈是类似的。最后,每位玩家要比牌型的大小以确定赢家。牌最大的玩家赢得牌局。

所有五张牌的组合,按以下秩序,由大至小排行分为不同牌型:

  1. 同花顺(Straight Flush\text{Straight Flush}):同一花色,顺序的牌。例:$\text{Q} \diamondsuit \text J\diamondsuit 10\diamondsuit 9\diamondsuit 8$;
  2. 四条(Four of a Kind\text{Four of a Kind}):有四张同一点数的牌。例:$10\clubsuit 10\diamondsuit 10\heartsuit 10\spadesuit 9\heartsuit$;
  3. 满堂红(Full House\text{Full House}):三张同一点数的牌,加一对其他点数的牌。例:$8\clubsuit 8\diamondsuit 8\spadesuit \text K\heartsuit \text K\spadesuit$;
  4. 同花(Flush\text{Flush}):五张同一花色的牌。例:$\text A\spadesuit \text K\spadesuit 10\spadesuit 9\spadesuit 8\spadesuit$;
  5. 顺子(Straight\text{Straight}):五张顺连的牌。例:$\text K\diamondsuit \text Q\heartsuit \text J\spadesuit 10\diamondsuit 9\diamondsuit$;
  6. 三条(Three of a Kind\text{Three of a Kind}):有三张同一点数的牌。例:$\text J\spadesuit \text J\heartsuit \text J\spadesuit \text K\diamondsuit 9\spadesuit$;
  7. 两对(Two Pairs\text{Two Pairs}):两张相同点数的牌,加另外两张相同点数的77牌。例:$\text A\clubsuit \text A\diamondsuit 8\heartsuit 8\spadesuit \text Q\spadesuit$;
  8. 一对(One Pair\text{One Pair}):两张相同点数的牌。例:$9\heartsuit 9\spadesuit \text A\clubsuit \text J\spadesuit 8\heartsuit$;
  9. 无对(Zilch\text{Zilch}):不能排成以上组合的牌,以点数决定大小。例:$\text A\diamondsuit \text Q\diamondsuit \text J\spadesuit 9\clubsuit 8\clubsuit$。

原件2:tmp2.png

若牌型一样则利用点数和花色决定胜负。(点数优先)

点数的顺序(从大至小)为:A>K>Q>J>10>9>8>7>6>5>4>3>2\text{A>K>Q>J>10>9>8>7>6>5>4>3>2}。(注:当55张手牌是5 4 3 2 A\text{5 4 3 2 A}的时候,A\text A可以看作最小的牌,此时的牌型仍然为顺子,是顺子里面最小的一个)。

花色的顺序(大至小)为:黑桃(\spadesuit)>红心(\heartsuit)>梅花(\clubsuit)>方块(\diamondsuit)。举例说明:

  1. $\text Q\diamondsuit \text J\diamondsuit 10\diamondsuit 9\diamondsuit 8\diamondsuit >8\clubsuit 8\heartsuit 8\spadesuit \text K\heartsuit \text K\spadesuit$(前者牌型为同花顺,比后者大):
  2. $9\clubsuit 9\diamondsuit 9\spadesuit \text Q\heartsuit \text Q\spadesuit>8\clubsuit 8\diamondsuit 8\spadesuit \text K\heartsuit \text K\spadesuit$(两者牌型均为满堂红,比较牌型中三张同一点数的牌9988大);
  3. $\text A\clubsuit \text A\diamondsuit 8\heartsuit 8\spadesuit \text Q\spadesuit>\text A\spadesuit A\heartsuit 7\heartsuit 7\spadesuit \text K\spadesuit$(两者牌型均为两对,且最大的对子相同,此时比较次大的对子,8877大);
  4. $\text A\spadesuit \text Q\spadesuit \text J\heartsuit 9\heartsuit 8\heartsuit>\text A\diamondsuit \text Q\diamondsuit \text J\spadesuit 9\clubsuit 8\clubsuit$(两者牌型均为无对,所有数码均相同,此时比较最大牌的花色,A>A\text A\spadesuit >\text A\diamondsuit);
  5. $4\spadesuit 4\heartsuit \text A\diamondsuit \text Q\diamondsuit 5\diamondsuit >4\clubsuit 4\diamondsuit \text A\spadesuit \text Q\spadesuit 5\spadesuit $(两者牌型均为一对,所有数码均相同,此时对44为牌型里最大的部分,因此比较4>44\spadesuit >4\clubsuit)。

在小Y\text Y和小Z\text Z玩梭哈的过程中,小Y\text Y总希望能够实时了解目前的形势,即根据自己手上的牌算出自己的胜率。但是他的编程能力有限,你能帮他完成这个任务么?

输入格式

第一行包含 11 个正整数​ NN​,表示小 YY 自己手上牌的数量。

接下来NN 行每行用两个整数描述一张小 YY 手上的牌:第一个数表示牌的数码(11 表示 AA1313 表示 KK1212 表示 QQ1111 表示 JJ),第二个数表示牌的花色( 11表示黑桃,22 表示红心,33 表示梅花,44 表示方块)。

接下来 N1N – 1 行每行用两个整数描述一张小 ZZ 手上的明牌:第一个数表示牌的数码(11 表示 A\text A1313 表示 K\text K1212 表示 Q\text Q1111 表示 J\text J ),第二个数表示牌的花色11表示黑桃,22 表示红心,33 表示梅花,44 表示方块)。

输出格式

仅包含一行,格式为 A/B 形式。 A,BA,B 为两个互质的自然数,A/B 表示了小 Y\text Y 当前局面下的获胜可能性。特别的,若 AA00,则应输出 0/1

样例

5
2 1
2 2
2 3
2 4
3 1
1 1
1 2
1 3
3 2
42/43

样例说明

Y\text Y手上牌的牌型是 44 条,小Z\text Z若底牌是方块A\text A则也能构成44条,并通过数码大获胜。其他情况下都是小Y\text Y获胜。

数据范围与约定

对于100%100\%的数据,1N51 \le N \le 5.