#217. 「Team Them Up!」 将他们分好队

「Team Them Up!」 将他们分好队

你的任务是以下列方式将一些人分成两个小队:

1、每个人都属于其中一个团队;
2、每个团队至少有一名成员;
3、团队中的每个人都认识团队中的每个人;
4、团队的规模尽可能接近。

此任务可能有许多解决方案,你可以输出任何一种解决方案,或声明解决方案不存在。

输入格式

第一行包含整数N,表示共有N个人,他们被编号为1,2,…,N。

接下来N行,第 i 行包含多个用空格分隔开的整数,表示编号为i的人认识的人的编号列表,最后以0结尾。

注意A认识B不代表B一定认识A。

输出格式

如果不存在解决方案,则输出”No solution”。

如果存在,则输出两个队伍的成员信息,每个队伍占一行,首先输出队伍的人数,然后依次输出队伍成员的编号。

数据范围

2N1002 \le N \le 100

输入样例:

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

来源

  • 《算法竞赛进阶指南》
  • acwing 可能含有视频讲解