#P1112. Team Them Up!
Team Them Up!
描述
你的任务是将若干个人分成两个小组,需满足以下条件:
- 每个人都属于其中一个小组;
- 每个小组至少有一名成员;
- 小组中的每个人都认识该小组的其他所有人;
- 两个小组的人数尽可能接近。
这个任务可能有很多种解决方案。你需要找到并输出任意一种解决方案,或者报告不存在这样的解决方案。
输入
为了简化问题,给每个人分配了一个唯一的整数标识符,范围是从到。 输入文件的第一行包含一个整数(),表示要分成小组的总人数。接下来是行,按照标识符升序,每行对应一个人。每行包含一些不同的数字(,),这些数字之间用空格分隔。该列表表示第个人认识的人的标识符。列表以结尾。
输出
如果问题不存在解决方案,那么在输出文件中写入一条消息 “No solution”(不含引号)。否则,在两行中写出解决方案。在输出文件的第一行,先写出第一个小组的人数,然后是第一个小组中每个人的标识符,在每个标识符前面放置一个空格。在第二行,以同样的方式描述第二个小组。你可以按照任意顺序写出小组以及小组中人员的标识符。
输入示例
5
2 3 5 0
1 4 5 3 0
1 2 5 0
1 2 3 0
4 3 2 1 0
输出示例
3 1 3 5
2 2 4
来源
2001年东北欧地区竞赛