[BalticOI 2017] Friends
题目背景
高中就是要交最棒的朋友!
乌姆里奇校长要调查霍格沃茨学校的交友情况了!
题目描述
学校里有 $n$ 个同学,他们的交友情况满足以下的条件:
- 如果 $a$ 与 $b$ 是朋友那么 $b$ 与 $a$ 也是朋友;
- 同学们可以分成组,每个同学都恰好只在一个组里面,且:
- 每个组的人数至少 $1$ 个最多 $p$ 个;
- 每组都有这样最多 $q$ 对朋友满足一个人在这个组,另一个人在别的组。
在同一个组里的两个同学不一定必须是朋友。
现在她来问您,想让您说出这些学生撒没撒谎。
如果没有撒谎的话,她想让您给出一个合理的分组模式。
输入输出格式
输入格式
第一行三个整数 $n,p,q$ 代表学生数,组别内学生的限制,和组别内不同组别朋友的限制。
学生的编号为从 $0$ 到 $n - 1$。
接下来 $n$ 行,从第 $0$ 个学生开始,首先一个整数 $m_i$ 代表这个学生与多少个学生为朋友,接下来 $m_i$ 个整数代表有哪些朋友。
输出格式
如果这些学生撒谎了,输出 `detention` 并结束程序。
如果这些学生没撒谎,首先输出 `home`。
然后一个整数 $G$ 代表这些学生可以分成 $G$ 组。
接下来 $G$ 行每行首先一个整数 $G'$ 代表这一组有几个学生,然后 $G'$ 个整数 $g_i$ 代表这一组学生的编号。
**任意输出一种方式即可。**
输入输出样例
输入样例 #1
4 2 1
1 1
2 0 2
2 1 3
1 2
输出样例 #1
home
2
2 0 1
2 2 3
输入样例 #2
5 2 1
1 1
2 0 2
2 1 3
2 2 4
1 3
输出样例 #2
detention
输入样例 #3
3 3 3
2 1 2
2 0 2
1 0
输出样例 #3
detention
说明
**数据规模与约定**
**本题采用捆绑测试。**
- Subtask 1(20 pts):$n \le 16$。
- Subtask 2(37 pts):$n \le 250$,$q \le 2$。
- Subtask 3(12 pts):$q \le 2$。
- Subtask 4(31 pts):无特殊限制。
对于 $100\%$ 的数据,$1 \le n \le 2500$,$p+q \le 15$,$\sum m_i \le 30000$,同学们不以自己为朋友。
**本题使用 Special Judge。**
**说明**
**翻译自 [BOI 2017 D2](https://boi.cses.fi/files/boi2017_day2.pdf) T2 Friends。**
翻译者:@[一只书虫仔](https://www.luogu.com.cn/user/114914)。
spj 提示信息说明:
- `Accepted`:答案正确。
- `Wrong Answer[0]`:判断错误。
- `Wrong Answer[1]`:某些组的大小不符合要求。
- `Wrong Answer[2]`:组里含有编号不在 $0$ 到 $n-1$ 内的人。
- `Wrong Answer[3]`:某些人属于多个组。
- `Wrong Answer[4]`:某些人不属于任何组。
- `Wrong Answer[5]`:分组不满足要求。
spj 作者:@[FZzzz](https://www.luogu.com.cn/user/174045)。