1427: 安全网络问题

内存限制:256 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:2 解决:0

题目描述

在一个网络中,我们称服务器S是关键服务器,如果至少有另两部不同的服务器AB,而AB之间的所有联络都通过S。即若S崩溃,则AB之间不能进行通讯。如果一个网络不包含关键服务器,则称它是安全的。服务器间所有的联络都是双向的,且一个服务器不允许直接与它自身相联。网络中可以存在单机和子网。

要求写一个程序,找出一个给定网络的分割,使其拥有数量最少的安全子网。

输入

1行只包含一个正整数n,表示网络中服务器的台数。

以下有n行,每行表示一个服务器的连接状况。在每行中,第1个数k表示是第k号服务器,0kn-1;第2个数是用括号括起来的(该数与括号之间没有空格),表示与该服务器直接相连的服务器的数目;剩下的是与该服务器直接相连的服务器的号数。

服务器的号数是用0n-1的整数表示;相邻数据之间至少用一个空格分隔。

输出

1行表示安全子网的最少个数。以下每行代表一个子网,每个子网内的服务器按号数升序排列,每个服务器号数间用单个空格分隔。按每个子网中最小的服务器的号数,由小至大排列子网。

样例输入 复制

8
0 (1) 1
1 (3) 2 0 3
2 (2) 1 3
3 (3) 1 2 4
4 (1) 3
7 (1) 6
6 (1) 7
5 (0)

样例输出 复制

5
0 1
1 2 3
3 4
5
6 7