QOJ.ac

QOJ

Limite de temps : 30.0 s Limite de mémoire : 512 MB Points totaux : 100 Interactif

#11801. 市场营销

Statistiques

这是一个交互式问题。

你的公司正在生产多种类型的产品。起初,你只有一种类型,你称之为 Type 1。后来你推出了一种更昂贵的产品,称之为 Type 2。接着又出现了一种更昂贵的产品,你称之为 Type 3——到目前为止,一切都很顺利。

然而,后来你推出了一种新类型,它的成本比 Type 2 高,但比 Type 3 低,而你的客户已经习惯了类型编号越高代表成本越高的事实。因此,你决定将旧的 Type 3 重命名为 Type 4,并将新类型发布为 Type 3。

你的麻烦并没有就此结束,因为你决定生产的下一种类型比所有现有的四种类型都便宜。你决定不使用零或负数,所以现在你必须重命名所有现有的类型!为了让情况更具前瞻性,你将现有的 Type 1 重命名为 Type 20,Type 2 重命名为 Type 30,Type 3 重命名为 Type 40,Type 4 重命名为 Type 50,并添加了新的最便宜的 Type 10。

当然,即使有了这个聪明的想法,在几次添加之后,你可能还是不得不再次重命名现有类型……

你决定自动化你的决策,编写一个程序来分配类型编号并为你执行重命名,使得重命名操作的总数不会太多。

你的程序将反复被告知新添加的类型在排序后的顺序中出现的位置,并需要为新添加的类型响应一个类型编号,以及一个可选的重命名操作列表,以维持按类型编号排序的顺序。

注意,交互器将表现得具有适应性(有些人可能会称之为对抗性),新添加类型给出的位置将取决于你为现有类型分配的类型编号。

交互

交互包含多轮。在每一轮中,会添加一个新类型。你的程序需要读取整数 $a_i$ —— 表示新类型在排序后的顺序中恰好位于该类型之后,如果新类型需要成为第一种类型,则读取 0。然后你的程序需要打印分配给新类型的类型编号 $b_i$ ($1 \le b_i \le 65535$),你想要在这一轮中执行的重命名操作数量 $n_i$,以及 $n_i$ 对整数,每对整数描述一个重命名操作:重命名之前和之后的类型编号,按此顺序。重命名后的类型编号也必须在 1 到 65535 之间(含)。

注意,重命名操作将同时发生,并且在新类型添加之前,因此你可以重用正在被重命名的类型编号之一作为新类型,或者将其中一种类型重命名为另一个正在被重命名的类型的旧编号。记得在打印决策后刷新输出。

在最多 10000 轮之后,你的程序将读取整数 -1,这意味着交互结束,你的程序应该退出。

在第一轮之前,没有任何类型,所以你读取的第一个整数总是 0 或 -1。

如果每一轮之后的类型编号都是不同的,在上述范围内,并且正确排序,且对于每个 $m$,前 $m$ 轮之后的重命名操作总数不超过 $100 \cdot m$,即 $\sum_{i=1}^m n_i \le 100 \cdot m$,你的解将被接受。

样例

样例输入 1

0
1
2
2
0
-1

样例输出 1

1 0
2 0
3 0
3 1 3 4
10 4 1 20 2 30 3 40 4 50

样例输入 2

0
100
111
-1

样例输出 2

100 0
200 1 100 111
150 0

说明

注意,题目描述开头描述的前几个类型编号和重命名仅作为示例,你的程序需要从空集开始,并自行做出所有决策。

第一个样例输入/输出对应于题目描述中的例子。

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.