loj#P3286. 「CEOI2014」狂欢节
「CEOI2014」狂欢节
题目描述
译自 CEOI 2014 Day1 T1「Carnival」,原网站因为神秘原因没法访问了,这里用的 Web Archive 链接。
Peter 的 个朋友(从 到 编号)每人都买了恰好一件狂欢节服装,他们会在狂欢节穿上买好的服装。一共有 种不同的服装,编号为 到 。然而 Peter 的一些朋友可能买了相同种类的服装。Peter 想知道他的哪些朋友买了相同的服装。为了达成这个目的,他组织了一些聚会,每场聚会他都会邀请一些朋友出席。Peter 知道在每场聚会之后的早上,他都不会回想起昨晚聚会上他的朋友们所穿的服装,他只会记住他在聚会上看见了多少种不同的服装。尽管如此,Peter 仍然想知道如果他可以选择每场聚会参加的朋友,他的朋友们有谁穿的服装是一样的。请帮帮 Peter!
交互过程
你的程序必须通过标准输入输出与交互器交互。
首先,你的程序必须读入一行一个整数 ,表示朋友个数。
接下来,你的程序需要按照如下规则与交互器交互:要组织一场聚会的话,你的程序需要输出一行;这一行包含一个整数 ,表示要邀请的人数,接下来 个整数,表示要邀请到聚会的朋友的编号列表(见样例)。不要忘了刷新输出缓冲区(如,使用 或 )!在此之后,你的程序需要读取答案:读入一行一个整数,表示他的朋友在聚会上所穿的衣服的种类数。
一旦你的程序确定了哪个朋友买了哪种服装,你的程序就应该将答案输出在一行。这一行以 开头,后面输出 个用空格隔开的整数 : 表示编号为 的朋友所买的服装种类。服装种类的编号并不重要,只需保证相同种类服装的编号相同,不同种类的服装编号不同即可。所有服装种类编号均在 到 之间。
在此之后,你的程序必须立即停止(使用 )。
数据范围及评分规则
保证 。
如果对于一组测试点,你的程序需要组织 次聚会以确定服装的话,得分为:
- 如果 ,则得 分。
- 如果 ,则得所有测试点分数的 。
- 如果 ,则获得测试点的全部分数。
样例
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
第一组样例是有 个朋友分别穿着编号为 的服装。在样例交互过程中,以 grader 开头的行描述了由解答程序读入的内容。以 program 开始的行描述了由解答程序输出的内容。在第一个样例中举行的聚会并不足以确定最后的服装情况,只不过是解答程序幸运地猜中了答案。
grader: 3
program: 3 1 2 3
grader: 2
program: 2 1 3
grader: 1
program: 0 1 2 1
第二个样例是有 个朋友分别穿着编号为 的服装,这足以确定最后的服装情况了。