Problem G: 28-搜索与回溯2-数字麻将

Problem G: 28-搜索与回溯2-数字麻将

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 1  Solved: 1
[Submit] [Status] [Web Board] [Creator:]

Description

数字麻将只包括1~9的数字,每种相同数字的牌最多只能有4张,胡牌的规则是AA + x * (ABC) + y * (AAA),其中AA/AAA表示2张/3张相同数字的牌,ABC表示是三张数字相连的牌,x和y为自然数。听牌是指再增加某一张特定牌后就能胡牌了。如1 1 1 2 3 3 3的听牌为1,2,3或4. 听1时:111+123+33;听2时:111+22+333;听3时:11+123+333;听4时:111+234+33。给定一系列的牌,请编程判断是否听牌。

Input

第一行为整数k,表示有k组测试数据。
每组测试数据占一行,每组测试数据的第一个数为n,表示有n张麻将牌。后面跟有n个整数,表示每张麻将牌数字。

Output

如果没有听牌,则输出“NO!”,否则按递增顺序输出每张听牌。

Sample Input

4
4 1 1 3 4
7 1 2 4 5 7 7 8
7 1 1 1 2 3 3 3
10 1 2 3 4 4 5 6 7 8 9

Sample Output

2 5
NO!
1 2 3 4
1 4 7

[Submit][Status]