#103. 严神的雀魂

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

题目描述

严神认为, 雀魂是一款二次元妹纸养成游戏。 该游戏中(目前)有8个妹纸角色。

考虑以下一种游戏。

总共有36张牌,每张牌是1~9。每个数字4张牌。

你手里有其中的14张牌,如果这14张牌满足如下条件,即算作和牌。

  1. 该14张牌可以分成7个不同的对子;

  2. 该14张牌可以分成1个对子以及4个面子。

其中对子指两张相同的牌, 面子指三张相同的牌或三张数字连续的牌。

现在严神拿到了13张牌。他想问知道在剩下23张牌当中,有多少张牌他拿到可以凑成和牌?为简化输出,你只需要考虑种类数。

输入格式

输入含有多组数据。

第1行为整数 T , 代表数据组数。

接下来每一行为一组输入数据。

每组输入数据共有13个1 – 9的数字, 我们保证其从小到大排序且每种数字出现次数不超过4.

输出格式

针对每组数据, 输出一行。 如果剩余23张牌中没有任何牌能和牌, 输出数字0. 否则首先输出一个 k , 代表可以和牌的种类数。 然后为 k 个整数, 由小到大输出剩下牌中能使牌变为和牌的牌的种类。相邻整数用一个空格隔开。

样例

样例输入

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

样例输出

2 6 9
1 7
0

数据范围与提示

对于100% 的数据, 1 \leq T \leq 10^4 .

第一组测试数据中, 如果拿到数字6, 可以分成111, 222, 333, 789,66凑成四面子一对子。如果拿到数字9, 可以分成111, 222, 333, 678, 99.

第二组测试数据中, 只有拿到7可以凑成七个对子。可以证明, 没有其他任何牌可以凑成和牌。

第三组测试数据中, 没有任何牌能使得该牌成为和牌。