2520: 分队
内存限制:64 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:5
解决:1
题目描述
HTX 受不了寂寞,准备举办一次 DOTA 比赛,为了能让 ACM 班全部都参加比赛,他还
特制了一张 DOTA 地图能够支持任意多人打任意多人。
现在问题来了,怎么把这么多人分成两队?HTX 的想法是,每个人报上自己愿意同
队的同学,接着 HTX 会按如下要求将所有人分为两队:
对任意同学甲,和同学甲同队的人,必须都是同学甲愿意同队的同学。
HTX 希望两队的人数差尽量小,如果这种分组不存在,那么输出“No solution”。
输入
第 1 行为 N,表示一共有多少个学生。
之后 2~N+1 行,每行表示这个学生信任的同学的名单,以 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
提示
part.in
5
2 3 5 0
1 4 5 3 0
1 2 5 0
1 2 3 0
4 3 2 1 0
part.out
2 3
30%
N<=10;
100%
N<=2000。