loj#P3286. 「CEOI2014」狂欢节

「CEOI2014」狂欢节

题目描述

译自 CEOI 2014 Day1 T1「Carnival」,原网站因为神秘原因没法访问了,这里用的 Web Archive 链接。

Peter 的 NN 个朋友(从 11NN 编号)每人都买了恰好一件狂欢节服装,他们会在狂欢节穿上买好的服装。一共有 CC 种不同的服装,编号为 11CC。然而 Peter 的一些朋友可能买了相同种类的服装。Peter 想知道他的哪些朋友买了相同的服装。为了达成这个目的,他组织了一些聚会,每场聚会他都会邀请一些朋友出席。Peter 知道在每场聚会之后的早上,他都不会回想起昨晚聚会上他的朋友们所穿的服装,他只会记住他在聚会上看见了多少种不同的服装。尽管如此,Peter 仍然想知道如果他可以选择每场聚会参加的朋友,他的朋友们有谁穿的服装是一样的。请帮帮 Peter!

交互过程

你的程序必须通过标准输入输出与交互器交互。

首先,你的程序必须读入一行一个整数 NN,表示朋友个数。

接下来,你的程序需要按照如下规则与交互器交互:要组织一场聚会的话,你的程序需要输出一行;这一行包含一个整数 k (1kN)k\ (1\le k\le N),表示要邀请的人数,接下来 kk 个整数,表示要邀请到聚会的朋友的编号列表(见样例)。不要忘了刷新输出缓冲区(如,使用 fflush(stdout);\texttt{fflush(stdout);}cout << endl;\texttt{cout << endl;})!在此之后,你的程序需要读取答案:读入一行一个整数,表示他的朋友在聚会上所穿的衣服的种类数。

一旦你的程序确定了哪个朋友买了哪种服装,你的程序就应该将答案输出在一行。这一行以 00 开头,后面输出 NN 个用空格隔开的整数 c1,,cN (1ciC)c_1,\ldots, c_N\ (1\le c_i\le C)cic_i 表示编号为 ii 的朋友所买的服装种类。服装种类的编号并不重要,只需保证相同种类服装的编号相同,不同种类的服装编号不同即可。所有服装种类编号均在 11CC 之间。

在此之后,你的程序必须立即停止(使用 return 0;\texttt{return 0;})。

数据范围及评分规则

保证 2N1502\le N\le 150

如果对于一组测试点,你的程序需要组织 PP 次聚会以确定服装的话,得分为:

  • 如果 11 500<P11\ 500<P,则得 00 分。
  • 如果 3 500P11 5003\ 500\le P\le 11\ 500,则得所有测试点分数的 20%20\%
  • 如果 P3 500P\le 3\ 500,则获得测试点的全部分数。

样例

grader: 5
program: 5 1 2 3 4 5
grader: 3
program: 2 2 5
grader: 1
program: 2 1 2
grader: 2
program: 1 4
grader: 1
program: 0 2 1 2 3 1

第一组样例是有 55 个朋友分别穿着编号为 1,2,1,3,21,2,1,3,2 的服装。在样例交互过程中,以 grader 开头的行描述了由解答程序读入的内容。以 program 开始的行描述了由解答程序输出的内容。在第一个样例中举行的聚会并不足以确定最后的服装情况,只不过是解答程序幸运地猜中了答案。

grader: 3
program: 3 1 2 3
grader: 2
program: 2 1 3
grader: 1
program: 0 1 2 1

第二个样例是有 33 个朋友分别穿着编号为 1,2,11,2,1 的服装,这足以确定最后的服装情况了。