Universal Cup Judging System

Universal Cup

Time Limit: 1.0 s Memory Limit: 256 MB Total points: 100 Interactive
Statistics

这是一个交互式问题。在输出每一行后,请务必刷新输出缓冲区。在 C++ 中,可以使用 cout << flush;在 Java 中,可以使用 System.out.flush();在 Python 中,可以使用 sys.stdout.flush()。你必须严格遵守“交互协议”部分的说明,否则可能会收到“答案错误”(Wrong Answer)、“超出时间限制”(Time Limit Exceeded)或其他判决。

由于矿井工作既艰苦又耗时,矮人们决定寻求帮助来自动化部分任务。他们目前的任务是将 $N$ 个矿石(编号为 $1$ 到 $N$)分类到不同的类别中。为了辅助这项工作,矮人工人安装了一条新的传送带。矮人们可以将矿石样本添加到传送带的开头,并从末端移除它们(即移除最早添加的矿石)。

不幸的是,这条传送带没有知识库,因此它无法识别传送带上任何矿石的类别。然而,它有一个非常有用的功能:它会显示当前传送带上有多少种不同的矿石类别。事实证明,这对矿井来说已经足够了,因为矮人们不需要知道每个矿石的类别:他们只需要将矿石按类别分堆即可。

你能利用这条传送带帮助矮人们完成这项任务吗?

交互协议

矿石的类别在开始时是固定的,且不依赖于所做的查询。

首先,读取一行包含一个整数 $N$,即要分类的矿石数量。然后,你可以执行以下两种类型的操作:

  • + id — 将标识符为 id 的矿石添加到传送带的开头。
  • - — 移除传送带末端的矿石。如果传送带为空,则什么也不会发生。

每次操作后,传送带会输出一行,包含当前传送带上不同类别的数量。

要输出答案,首先打印一行,包含 !,后跟 $k$,即矿井中不同类别的数量。然后打印 $k$ 行,每行描述一个类别。每行应包含一个数字 $c_i$,后跟该类别中 $c_i$ 个矿石的标识符。$N$ 个矿石中的每一个都必须出现在且仅出现在一个类别中。你可以以任何顺序输出类别以及每个类别内的矿石。

请记住在每次操作后以及写出答案后刷新输出。请记住在数字与 +-! 符号之间留出空格。你必须读取来自交互器的所有数据。

限制

$1 \le N \le 500$,你最多可以执行 $35\,000$ 次操作。

样例

输入格式 1

3
1
2
2
2

输出格式 1

+ 1
+ 2
+ 3
-
! 2
2 1 3
1 2

说明

第一个样例测试中,$N = 3$,矿石 $1, 2, 3$ 的类别分别为 $1, 2, 1$。

本地测试

在“文件”部分,你可以找到包含样例测试和评分器 grader.cppA.zip。要测试你的解决方案,请编译它,然后将测试名称和你的可执行文件传递给编译后的 ./grader

./grader [test] [executable]

例如:./grader 0b.in ./abc

样例评分器不保证与官方评分器的行为完全一致。然而,官方评分器也不是自适应的。

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.