QOJ.ac

QOJ

시간 제한: 1 s 메모리 제한: 256 MB 총점: 100 인터랙티브

#13611. 嘉年华

통계

Peter 的 $N$ 个朋友(编号为 $1$ 到 $N$)每个人都购买了恰好一套狂欢节服装,以便在今年的狂欢节聚会上穿着。一共有 $C$ 种不同的服装,编号为 $1$ 到 $C$。然而,Peter 的一些朋友可能购买了相同款式的服装。Peter 想知道他的哪些朋友购买了相同的服装。为此,他组织了一些聚会,并在每次聚会中邀请他的一些朋友。Peter 知道,在每次聚会结束后的第二天早上,他将无法回忆起前一天晚上看到了哪些服装,而只能记住在聚会上看到了多少种不同款式的服装。Peter 想知道,他是否仍然可以通过合理选择每次聚会的宾客,从而在最终得知哪些朋友拥有相同款式的服装。请帮助 Peter!

交互

你的程序必须通过标准输入和输出与交互器(grader)进行交互。

首先,你的程序必须读取一行,包含朋友的数量 $N$。

然后,你的程序应按如下方式与交互器进行交互:要举行一次聚会,程序需输出单行,其中包含要邀请的人数 $k$($1 \le k \le N$),紧接着是该聚会邀请的朋友编号列表(参见样例)。不要忘记刷新输出(例如,使用 fflush(stdout);cout << endl;)!随后,你的程序必须读取回答:单行,表示他的朋友在这次聚会上穿着的不同服装款式的数量。

一旦你的程序确定了每个朋友购买了哪种服装,它应该在单行中输出此结果。该行以数字 0 开头,后跟 $N$ 个空格分隔的整数 $c_1, \dots, c_N$(对于所有 $i$,满足 $1 \le c_i \le C$):$c_i$ 表示第 $i$ 个朋友购买的服装款式。服装款式的具体编号并不重要;只需满足相同的服装具有相同的编号,不同的服装具有不同的编号,且所有编号都在 $1$ 到 $C$ 之间即可。

输出结果后,你的程序必须立即终止(通过 return 0;)。

数据范围与子任务

我们总是满足 $2 \le N \le 150$。

如果你的程序在某个测试用例中使用了 $P$ 次聚会查询来确定服装分配,它的得分规则如下:

  • 若 $11\,500 < P$,得 $0$ 分;
  • 若 $3\,500 < P \le 11\,500$,得该测试点 $20\%$ 的分数;
  • 若 $P \le 3\,500$,得该测试点 $100\%$ 的分数。

样例

输入格式 1

5
3
1
2
1

输出格式 1

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

说明

第一个样例对应 5 个朋友,他们的服装编号分别为 1 2 1 3 2。

在交互过程中:

  • 程序首先读取 $N = 5$。
  • 程序询问邀请所有 5 个人的聚会(输出 5 1 2 3 4 5),交互器返回有 3 种不同的服装(输入 3)。
  • 程序询问邀请 2 和 5 的聚会(输出 2 2 5),交互器返回有 1 种不同的服装(输入 1)。
  • 程序询问邀请 1 和 2 的聚会(输出 2 1 2),交互器返回有 2 种不同的服装(输入 2)。
  • 程序询问邀请 4 的聚会(输出 1 4),交互器返回有 1 种不同的服装(输入 1)。
  • 最后程序输出答案 0 2 1 2 3 1

当然,第一个样例中指定的聚会并不足以安全地确定服装分配——解决方案程序只是运气好猜对了。

输入格式 2

3
2
1

输出格式 2

3 1 2 3
2 1 3
0 1 2 1

说明

第二个样例对应 3 个朋友,他们的服装编号分别为 1 2 1。

在交互过程中:

  • 程序首先读取 $N = 3$。
  • 程序询问邀请 1, 2, 3 的聚会(输出 3 1 2 3),交互器返回有 2 种不同的服装(输入 2)。
  • 程序询问邀请 1 和 3 的聚会(输出 2 1 3),交互器返回有 1 种不同的服装(输入 1)。
  • 最后程序输出答案 0 1 2 1

指定这两个聚会足以唯一确定服装分配。

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
EditorialOpen Official EditorialQingyu- Download

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.