题目名称 | 977. 组队! |
---|---|
输入输出 | teams.in/out |
难度等级 | ★ |
时间限制 | 1000 ms (1 s) |
内存限制 | 128 MiB |
测试数据 | 56 |
题目来源 | 王者自由 于2012-08-02加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:5, 提交:9, 通过率:55.56% | ||||
dsn | 100 | 0.000 s | 0.00 MiB | C++ |
dsn | 100 | 0.000 s | 0.00 MiB | C++ |
dsn | 100 | 0.000 s | 0.00 MiB | C++ |
dsn | 100 | 0.000 s | 0.00 MiB | C++ |
dsn | 100 | 0.008 s | 0.11 MiB | C++ |
6娃 | 53 | 22.876 s | 3.49 MiB | C++ |
6娃 | 41 | 22.879 s | 3.38 MiB | C++ |
6娃 | 41 | 22.931 s | 3.38 MiB | C++ |
dsn | 10 | 0.000 s | 0.00 MiB | C++ |
关于 组队! 的近10条评论(全部评论) |
---|
你的任务是通过如下方法将一群人分成两个小组:
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"(不包括双引号)。
否则,输出包括两行,第一行表示第一组的人,第二行表示第二组的人。
每行第一个数表示组内人数,每一组内的人的编号用空格隔开,输出顺序没有要求。
5 3 4 5 0 1 3 5 0 2 1 4 5 0 2 3 5 0 1 2 3 4 0
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