loj#P3358. 「BalticOI 2017 Day2」Friends

「BalticOI 2017 Day2」Friends

题目描述

题目译自 BalticOI 2017 Day2「Friends

高中就是要交最棒的朋友!
乌姆里奇校长要调查霍格沃茨学校的交友情况了!
学校里有 nn 个同学,他们的交友情况满足以下的条件:

  • 如果 aabb 是朋友,那么 bbaa 也是朋友;
  • 同学们可以分成组,每个同学都恰好只在一个组里面,且:
    • 每个组的人数至少 11 个最多 pp 个;
    • 每组都有最多 qq 对朋友满足一个人在这个组,另一个人在别的组。

在同一个组里的两个同学不一定必须是朋友。
现在她来问你,想让你判断出这些学生撒没撒谎。
如果没有撒谎的话,她想让你给出一个合理的分组模式。

输入格式

第一行三个非负整数 n,p,qn,p,q 代表学生数,组别内学生的限制,和组别内不同组别朋友的限制。
学生的编号为从 00n1n - 1
接下来 nn 行,从第 00 个学生开始,首先一个整数 mim_i 代表这个学生与多少个学生为朋友,接下来 mim_i 个整数代表有哪些朋友。

输出格式

如果这些学生撒谎了,输出 detention 并结束程序。
如果这些学生没撒谎,首先输出 home
然后一个整数 GG 代表这些学生可以分成 GG 组。
接下来 GG 行每行首先一个整数 GG' 代表这一组有几个学生,然后 GG' 个整数 gig_i 代表这一组学生的编号。
任意输出一种方式即可。

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

home
2
2 0 1
2 2 3

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

detention

3 3 3
2 1 2
2 0 2
1 0

detention

数据范围与提示

对于 100%100\% 的数据,1n25001 \le n \le 2500p+q15p+q \le 15mi30000\sum m_i \le 30000,同学们不以自己为朋友。

详细子任务分值及附加限制如下:

  • Subtask 1(20 pts):n16n \le 16
  • Subtask 2(37 pts):n250n \le 250q2q \le 2
  • Subtask 3(12 pts):q2q \le 2
  • Subtask 4(31 pts):无特殊限制。