题目名称 977. 组队!
输入输出 teams.in/out
难度等级
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 56
题目来源 Gravatar王者自由 于2012-08-02加入
开放分组 全部用户
提交状态
分类标签
分享题解
通过:5, 提交:9, 通过率:55.56%
Gravatardsn 100 0.000 s 0.00 MiB C++
Gravatardsn 100 0.000 s 0.00 MiB C++
Gravatardsn 100 0.000 s 0.00 MiB C++
Gravatardsn 100 0.000 s 0.00 MiB C++
Gravatardsn 100 0.008 s 0.11 MiB C++
Gravatar6娃 53 22.876 s 3.49 MiB C++
Gravatar6娃 41 22.879 s 3.38 MiB C++
Gravatar6娃 41 22.931 s 3.38 MiB C++
Gravatardsn 10 0.000 s 0.00 MiB C++
关于 组队! 的近10条评论(全部评论)

977. 组队!

★   输入文件:teams.in   输出文件:teams.out   评测插件
时间限制:1 s   内存限制:128 MiB

【题目描述】

你的任务是通过如下方法将一群人分成两个小组:

1、每个人都属于一个小组;

2、每个小组至少有一个人;

3、小组内每个人都要了解与其同组的人的情况;

4、小组的人数应当尽可能的接近。

可能会有多解,你只需要输出任意一组解,或者无解时输出"No solution"。

【输入格式】

所有人都有一个1~N之间的唯一编号。

输入的第一行包含一个整数N (2 ≤ N ≤ 100),表示总人数。

接下来N行,每i行表示i个人的情况,包含若干个不同的用空格隔开的数字Aij (1 ≤ Aij ≤ N, Aij ≠ i),表示第i个人了解的人,以0表示结束。

【输出格式】

如果问题误解,则输出一行"No solution"(不包括双引号)。

否则,输出包括两行,第一行表示第一组的人,第二行表示第二组的人。

每行第一个数表示组内人数,每一组内的人的编号用空格隔开,输出顺序没有要求。

【输入样例1】

5
3 4 5 0
1 3 5 0
2 1 4 5 0
2 3 5 0
1 2 3 4 0

【输出样例1】

No solution

【输入样例2】

5
2 3 5 0
1 4 5 3 0
1 2 5 0
1 2 3 0
4 3 2 1 0

【输出样例2】

3 1 3 5
2 2 4