Skip to content

12206: 【原2206】分队

题目

题目描述

author: cloudygoose 原OJ链接:https://acm.sjtu.edu.cn/OnlineJudge-old/problem/2206

题目描述

HTX受不了寂寞,准备举办一次DOTA比赛,为了能让ACM班全部都参加比赛,他还特制了一张DOTA地图能够支持任意多人打任意多人。
现在问题来了,怎么把这么多人分成两队?HTX的想法是,每个人报上自己愿意同队的同学,接着HTX会按如下要求将所有人分为两队:
对任意同学甲,和同学甲同队的人,必须都是同学甲愿意同队的同学。
HTX希望两队的人数差尽量小,如果这种分组不存在,那么输出No soultion.

输入格式

第1行为N,表示一共有多少个学生。
之后2~N+1行,每行表示这个学生信任的同学的名单,以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

样例输出1

2 3

数据范围:

对30%的数据  N<=10
对100%的数据 N<=2000

Oops! 本题目还没有解答!

助教老师们编题的速度,已经超过了解题的速度!

OJ翻了一新,但本解答集还大多用的是2017-2019级,甚至更早的同学们贡献的答案。

如果你已经AC了,可以的话,请您参考添加页面,与大家一起分享你的题解!