#NP0051. L14 NP0051-小码哥的麻将

0

L14 NP0051-小码哥的麻将

题目描述

麻将,是一种棋牌游戏,在此介绍一种简化的规则。

麻将手牌分为万子、条子、筒子、风牌、箭牌(花牌在本题中无需考虑): 1、其中,万子、条子、筒子统称为数牌,有一到九共九种,所以有一万到九万、一条到九条、一筒到九筒,在一些规范记牌法中,我们分别将以上的牌记为1m~9m, 1s ~ 9s, 1p ~ 9p。 2、风牌与箭牌统称为字牌,风牌包含东南西北四种,箭牌包含白发中三种。在这种记牌法里,我们可以分别将以上的牌记为1z ~ 7z。 3、所有的牌均有44张相同的牌,所以在这种规则下,一副完整的麻将牌包含4×(9×3+7)=1364\times(9\times 3 +7)=136张牌。

此外: 1、顺子是指连续的三张同花色的数牌。如1s2s3s, 4m5m6m, 7p8p9p。而1s2m3p, 8s9s1s这些不算顺子。由于限定了数牌组成的条件,字牌是不能组成顺子的,即1z2z3z,5z6z7z均不能算顺子。 2、刻子是指三张相同的牌。如1s1s1s, 2z2z2z(在这个规则中,不考虑开杠的情况)。 3、顺子和刻子统称为面子。 4、对子是指两张相同的牌。如2m2m,6z6z。

在麻将游戏中,四位玩家手中都有1313张手牌,每轮从牌山中抓取一张牌,如果能够组成和牌型即可和牌,和牌即胜利,否则需要从手中的13+1=1413+1=14张牌中选择一张打出。

在这个规则中,基础的和牌型是44个面子+11个对子组成的4×3+1×2=144\times 3 + 1\times 2=14张牌。 如果手中的1313张牌可以通过抓取某些特殊的牌直接形成和牌型,这种状态被称为听牌。

在这个规则中,除了基础和牌型,你还需要考虑两种特殊和牌型。 1、七对子:由77个不同的对子组成的手牌。 2、十三幺(国士无双):将数牌的11和99,以及所有的字牌称为幺九牌,则共有2×3+7=132\times 3 + 7=13种幺九牌。如果手中的手牌恰好为1212种幺九牌各一张,另一种幺九牌两张(或者可以拆分为1313种幺九牌各一张,再加上任意一张幺九牌,二者等价),则称为十三幺的和牌型。

现在给出一副1313张的手牌,询问其是否可以抓取一张特定牌形成和牌型。

输入格式

输入一行长度为2626的字符串,代表手牌。

输出格式

输出一行一个整数。如果手牌不能通过抓取一张牌和牌,输出−1-1,否则输出可以抓取达成和牌型的牌的种类数。

样例输入 #1

1m9m1s9s1p9p1z2z3z4z5z6z7z

样例输出 #1

13

样例输入 #2

1m1m1m2m3m4m5m6m7m8m9m9m9m

样例输出 #2

9

样例输入 #3

1m1m2s2s3s3s4s4s5p5p6p6p7p

样例输出 #3

2

说明/提示

样例解释

样例1显然是1313种幺九牌各一张的情况,摸进任一张幺九牌均可和牌。 样例2被称为九莲宝灯,这种摸进任一张同花色的数牌均可和牌的情况有时被称为纯正九莲宝灯,你不需要特殊考虑这种情况,因为其可被拆分为正常的和牌型。 样例3的手牌摸进4p和7p均可形成和牌型。

数据保证

保证输入的字符串奇数位为数字字符,偶数位为’m’,’s’,’p’,’z’中的一个。