#P3961. Cactus Revolution
Cactus Revolution
题目描述
在全球核战争后,先进洞穴大都市(ACM)在地下洞穴中幸存下来。洞穴之间通过通道相连,整个城市地图可以用一个图来表示,其中洞穴是顶点,它们之间的通道是边。
洞穴城市发生了一场革命。城市的全体居民被平均分成个政党,这些政党无法就共同的法律达成一致。他们决定将城市划分为个行政区,并让每个行政区的居民自行制定他们喜欢的法律。
你将得到一个以图形式呈现的城市地图,你的任务是编写一个程序,将这个图划分为个大小相等的行政区。每个行政区必须形成一个连通子图,由图的顶点子集表示。
幸运的是,图中的顶点数量能被整除,并且表示城市的图恰好是一个仙人掌图——一种每个边最多属于一个简单环的连通无向图。直观地说,仙人掌图是树的一种推广,其中允许存在一些环。
下面的图片展示了一个有15个洞穴的城市地图及其划分为3个行政区的示例。
输入
输入文件的第一行包含三个整数、和(,,)。这里是图中的顶点数量,顶点编号从1到。图的边由一组边不相交的路径表示,其中是这种路径的数量,是城市必须划分的行政区数量,且能被整除。
接下来的行每行包含图中的一条路径。一条路径以一个整数()开头,后跟个从1到的整数。这个整数表示路径的顶点。
路径中相邻的顶点是不同的。路径可以多次经过同一个顶点,但在整个输入文件中,每条边恰好被遍历一次。图中没有重边(任意两个顶点之间最多有一条边)。
输入文件中的图是一个仙人掌图。
输出
如果可以将顶点划分为个行政区,则向输出文件写入行,每行包含个整数。每行表示一个行政区,作为构成它的顶点编号列表。
在每个行政区的描述中,顶点编号必须按升序列出。
如果不存在解决方案,则输出单个数字-1。
输入数据 1
#1
15 3 3
9 1 2 3 4 5 6 7 8 3
7 2 9 10 11 12 13 10
5 2 14 9 15 10
#2
4 2 2
3 1 2 3
2 2 4
输出数据 1
#1
4 5 6 7 8
10 11 12 13 15
1 2 3 9 14
#2
-1