#P1112. Team Them Up!

    ID: 113 传统题 1000ms 256MiB 尝试: 4 已通过: 1 难度: 10 上传者: 标签>动态规划背包搜索DFSNortheastern Europe 2001

Team Them Up!

描述

你的任务是将若干个人分成两个小组,需满足以下条件:

  1. 每个人都属于其中一个小组;
  2. 每个小组至少有一名成员;
  3. 小组中的每个人都认识该小组的其他所有人;
  4. 两个小组的人数尽可能接近。

这个任务可能有很多种解决方案。你需要找到并输出任意一种解决方案,或者报告不存在这样的解决方案。

输入

为了简化问题,给每个人分配了一个唯一的整数标识符,范围是从11NN。 输入文件的第一行包含一个整数NN2N1002 \leq N \leq 100),表示要分成小组的总人数。接下来是NN行,按照标识符升序,每行对应一个人。每行包含一些不同的数字AijA_{ij}1AijN1 \leq A_{ij} \leq NAijiA_{ij} \neq i),这些数字之间用空格分隔。该列表表示第ii个人认识的人的标识符。列表以00结尾。

输出

如果问题不存在解决方案,那么在输出文件中写入一条消息 “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年东北欧地区竞赛