3892 - 星际比赛

题目描述

在宇宙冒险者的星际比赛中,各路英雄们纷纷参与,期待着最后的荣耀。

由于他们来自不同的星系,对所有冒险者都不太了解,于是他们纷纷对一些他们熟悉的冒险者的实力进行了评估,即对部分冒险者做了相对排名的预测,并将这些预测传达给星际联盟。

比赛结束后,他们向星际联盟询问最后的比赛排名,但星际联盟的工作人员忘记了具体的排名,只记得哪些冒险者的预测是准确的,哪些是错误的。

他们希望知道比赛的排名可能是什么。

输入

第一行输入两个整数 n,mn 表示参加比赛的冒险者数量,m 表示参与预测成绩的冒险者的数量。冒险者编号从 0n-1

接下来 m 行,每行为一个参赛选手的相对排名预测。

每行第一个数 c 表示他预测的冒险者人数,后面跟着 c0 \sim n-1 的不同的数,表示他预测的冒险者相对排名,最后还有一个数, 0 表示这个预测是错误的,1 表示这个预测是正确的。

输出

第一行输出一个整数 r,代表有多少种排名的可能。

下面 r 行,每行输出一个 0 \sim n-1 的排列,为某一个可能的排名,相邻的数间用空格隔开。

所有排名按字典序依次输出。

样例

输入

3 2
2 0 1 1
2 1 2 0

输出

2
0 2 1
2 0 1

输入

3 2
2 0 1 1
2 2 1 0

输出

1
0 1 2

输入

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

输出

18486
0 1 2 3 4 6 7 8 5 
0 1 2 3 4 6 8 5 7 
0 1 2 3 4 6 8 7 5 
0 1 2 3 4 7 8 5 6 
0 1 2 3 4 8 5 6 7 
0 1 2 3 4 8 5 7 6 
0 1 2 3 4 8 6 5 7 
0 1 2 3 4 8 6 7 5 
0 1 2 3 4 8 7 5 6 
0 1 2 3 6 4 7 8 5 
省略剩余的输出,剩余的输出需要同学自行计算……
说明

样例 1 解释

3 名参加比赛的冒险者,他们的编号分别是 0 1 2,有 2 名参与预测的冒险者。

1 名冒险者预测结果为 0 1,即:0 的排名在 1 的前面,他的预测是正确的。

2 名冒险者预测结果为 1 2,即:1 的排名在 2 的前面,他的预测是错误的。

0 1 2 的所有可能的排名有 6 种,结合预测对 8 种可能的排名分别讨论如下:

  • 0 1 2,由于 12 的前面是错误的,因此该排名不可能。

  • 0 2 1,符合预测的结果。

  • 1 0 2,由于 0 应当在 1 的前面,因此该排名不可能。

  • 1 2 0,由于 0 应当在 1 的前面,因此该排名不可能。

  • 2 0 1,符合预测的结果。

  • 2 1 0,由于 0 应当在 1 的前面,因此该排名不可能。

综上,一共有 2 个可能的排名,分别是:0 2 12 0 1

数据规模

对于 100\% 的数据,满足 1 \le n \le 10, 2 \le c \le n, 1 \le m \le 10

保证数据合法,且答案中排名可能数不超过 20000

补充说明

对于一个排名序列,一个预测是正确的,当且仅当预测的排名的相对顺序是排名序列的一个子序列。

一个预测是错误的,当且仅当这个预测只要有两个数的顺序不正确,这个预测就是不正确的。

可能的排列,必须符合所有正确的预测。某个排列只要符合一个错误的预测,该排列就不是可能的排列。

标签
题目参数
时间限制 1 秒
内存限制 256 MB
提交次数 0
通过人数 0
金币数量 2 枚
难度 基础


上一题 下一题