当前你的浏览器版本过低,网站已在兼容模式下运行,兼容模式仅提供最小功能支持,网站样式可能显示不正常。
请尽快升级浏览器以体验网站在线编辑、在线运行等功能。

建议使用的浏览器:

谷歌Chrome 火狐Firefox Opera浏览器 微软Edge浏览器 QQ浏览器 360浏览器 傲游浏览器

6466:清一色

题目描述
又在和群里的大佬们打日本麻将了,她熟练地从牌山中摸来一个牌,然后发现,手里 14 张牌全都是同一个花色的,也就是说,如果这些牌能够组成四个“面子”和一个“对子”构成的“一般形”,或者是七个互不相同的“对子”的“七对形”,那她就可以达成杀伤力极强的番种 - 清一色。

所谓“面子”,指的是“刻子”和“顺子”中的其中一种(我们不考虑“吃碰杠”等特殊情况,“暗杠”就更不考虑了)。“刻子”就是三张一模一样的牌,比如 111, 222 等(这里由于都是同一种花色,所以麻将牌的花色省略,只看麻将牌的数字),而“顺子”就是三张数字可以组成以 1 为等差数列的牌,如 123, 234, 345 等,但是,891, 912 这样的不算。

而所谓“对子”,指的就是两张一样的牌,如 11,22 等。

由于 Annie2212 第一次做这么厉害的牌,缺乏经验,她想知道,她是不是已经做出了“清一色”,如果做出来了,她就可以喊一句“自摸”并把牌推倒亮明,赢得本局。

如果还没做出来,她想知道自己是否已经“听牌”,所谓“听牌”就是指换掉一张牌就可以自摸的状态,而且她想知道可以怎么换牌,她需要知道所有的选项以方便她做出决定。

值得注意的是,游戏中每种牌各有四张,如果所等的牌自己已经有四张的话,我们当然不能再等这种牌。

那么这个烧脑的任务就交给你了。
输入解释
本题有多组测试数据,每组测试数据有两行:

第一行:Annie2212 刚从牌山中摸到的牌,毕竟都是同一花色,我们直接用一个范围在 1 到 9 (闭区间)以内的数字表示麻将牌,下同。

第二行:摸牌前 Annie2212 手上的 13 张牌,每张牌用一个空格隔开,保证这 13 张牌已从小到大排序。

最后一个测试数据之后,会有单独的一行,这一行只有一个数字 "0" ,表示输入结束。
输出解释
如果能自摸,输出一行 "tsumo" 即可 (没有引号,下同)

如果不能自摸,但是能听牌,输出一行 "tenpai" 后,下面若干行表示出所有换牌的选项,格式为:

X1: Y11 Y12 ... Y1j ...
X2: Y21 Y22 ... Y2j ...
...
Xi: Xi1 Xi2 ... Yij ...
...

表示如果换掉 Xi 这种牌中的一张的话,应该等 Yi1, Yi2, ... 这些牌中的一张才能自摸,注意,Xi 和 Yi1 之间是用一个冒号和一个空格隔开的,同一行的各个 Yij 之间是用一个空格隔开的,并且所有的 Xi 必须从小到大排序,同一行的 Yij 也要从小到大排序。

如果连听牌都做不到,输出一行 "noten" 即可。



样例解释:

第一组数据:1245679 正好是七种牌,各有两张,构成“七对形”,直接自摸

第二组数据:若摸到的 9 直接打出,这 13 张手牌可以拆解成 123-123-123-23-44,对这个 23 要构成“一般形”中的“顺子”要等 1 或 4,也可以拆解成 111-222-33-234-34,那么对这个 34 要构成“顺子”要等 2 或 5,而 2 已经有四张,不可能再摸到了,所以不考虑 2 而考虑 5

第三组数据:“七对形”要求七个“对子”的种类各不相同,所以像这样有两个相同“对子”的牌型,在日本麻将中不被承认,需要再换掉两张牌才能胡“七对型”,连听牌都没有。
输入样例
9
1 1 2 2 4 4 5 5 6 6 7 7 9
9
1 1 1 2 2 2 2 3 3 3 3 4 4
5
1 1 1 1 3 3 5 6 6 8 8 9 9
0
输出样例
tsumo
tenpai
1: 9
4: 9
9: 1 4 5
noten
来自杭电HDUOJ的附加信息
Recommend liuyiding

该题目是Virtual Judge题目,来自 杭电HDUOJ

源链接: HDU-6466

最后修改于 2020-10-25T23:31:36+00:00 由爬虫自动更新

共提交 0

通过率 --%
时间上限 内存上限
2000/1000MS(Java/Others) 65536/65536K(Java/Others)