C. TLE的四牌麻将

内存限制:256 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:文本比较

题目描述

麻将是我国的一种传统竞技项目,通常情况下一共有136张牌,你将有13张手牌,在获得一张牌后14张牌符合特定牌型即可获得胜利。

今天,我们来进行一种简单的麻将,一共有136张牌(包括1-9万、1-9条、1-9筒、东西南北风、红中、发财、白板各四张),你将有4张手牌,在获得一张牌后如果五张牌满足AAA+BB或ABC+DD即可获得胜利,即五张牌为任意的对加另外三张相同的牌或一对加另外三张相连的牌组成的顺子(例如:五张牌为三个一万+两个东风或一二三条+两个五饼均可获得胜利)。

注意,只有筒万条才能组成顺子。

起初你将有4张手牌,保证在获得一张特定牌后可以获得胜利。你已知所有已出牌的数量,随后你会有5次机会获得一张牌,如果获得牌后达成胜利,请输出胜利时的五张手牌,如果没有达成胜利条件,打出一张牌使再次摸牌时胜利的可能性最大(即使未打出的可使你胜利的牌最多)。

各种麻将牌对应的字符串

1-9万 1-9条 1-9饼 字牌
m1-m9 s1-s9 p1-p9 t1-t7

:字牌顺序依次为东风、西风、南风、北风、红中、发财、白板

输入格式

第一行,一个字符串"begin"。

接下来若干行,每行一个形如"yy:x"的字符串表示,某张牌yy已经打出了x张。

接下来一行,一个字符串"end"。

接下来一行,以空格隔开的4个字符串表示你的手牌。

接下来五行,每行一个字符串表示将要获得的牌。

输出格式

在获得胜利之前,每获得一张牌进行一次输出,每次输出占一行。

如果胜利,输出胜利时的手牌,按mspt的顺序输出,序号由小到大输出,每两张牌对应的字符串用一个空格隔开。

如果没有胜利,输出要打出的牌(保证只有1种最佳选择)。

样例

样例输入1

begin
p1:2
s2:2
s5:3
s8:1
end
s2 t1 t1 t1
s5
s8
p2
p3
p4

样例输出1

s5
s2
s8
t1
p2 p3 p4 t1 t1

样例说明1

起初的手牌为,二条和三张东风,获得二条可以获得胜利。

第一次获得牌,获得五条后,手牌为二条、五条和三张东风,不符合胜利条件,如果打出二条,则再获得一张五条可以获胜,剩余的五条数量为0;如果打出五条,则再获得一张二条可以获胜,剩余的二条数量为1;如果打出东风,则无法在获得一张特定的牌后获胜,所以打出五条。

第二次获得牌,获得八条后,手牌为二条、八条和三张东风,不符合胜利条件,如果打出二条,则再获得一张八条可以获胜,剩余数量为2;如果打出八条,则再获得一张二条可以获胜,剩余数量为1;如果打出东风,则无法在获得一张特定的牌后获胜,所以打出二条。

第三次获得牌,获得二筒后,手牌为八条、二筒和三张东风,不符合胜利条件,如果打出二筒,则再获得一张八条可以获胜,剩余数量为2;如果打出八条,则再获得一张二筒可以获胜,剩余数量为3;如果打出东风,则无法在获得一张特定的牌后获胜,所以打出八条。

第四次获得牌,获得三筒后,手牌为二筒、三筒和三张东风,不符合胜利条件,如果打出二筒,则再获得一张三筒可以获胜,剩余数量为3;如果打出三筒,则再获得一张二筒可以获胜,剩余数量为3;如果打出东风,则再获得一张一筒或四筒可以获胜,剩余数量为6,所以打出东风。

第五次获得牌,获得四筒后,手牌为二筒、三筒、四筒和两张东风,符合胜利条件。

样例输入2

begin
m2:2
m3:1
m4:2
m5:2
m6:4
end
m3 m3 m4 m5
m2
m1
m1
m9
m9

样例输出2

m3
m5
m1 m1 m2 m3 m4

样例说明2

起初的手牌为,三万、三万、四万、五万,获得三万或六万可以获得胜利。

第一次获得牌,获得二万后,手牌为二万、三万、三万、四万、五万,不符合胜利条件,如果打出二万,则再获得一张三万或六万可以获胜,剩余的数量为1;如果打出三万,则再获得一张二万或五万可以获胜,剩余的数量为2;如果打出四万,则无法在获得一张特定的牌后获胜;如果打出五万,则再获得一张三万可以获胜,剩余的数量为1;所以打出三万。

第二次获得牌,获得一万后,手牌为一万、二万、三万、四万、五万,不符合胜利条件,如果打出一万,则再获得一张二万或五万可以获胜,剩余数量为2;如果打出二万,则再获得一张一万可以获胜,剩余数量为3;如果打出三万,则无法在获得一张特定的牌后获胜;如果打出四万,则再获得一张五万可以获胜,剩余数量为1;如果打出五万,则再获得一张一万或四万可以获胜,剩余数量为4,所以打出五万。

第五次获得牌,获得一万后,手牌为两张一万和二万、三万、四万,符合胜利条件。

数据范围与提示

每种麻将牌只有四张。

通告标题

通告内容

已知晓