QOJ.ac

QOJ

حد الوقت: 1 s حد الذاكرة: 1024 MB مجموع النقاط: 100 تفاعلية

#15514. 锯木厂

الإحصائيات

Alma 有许多木板想要锯成碎片。因此,她去了一家最先进的锯木厂,该厂可以自动切割和分类木板。每块木板都可以用一条无限长的 $x$ 轴表示,锯木厂将在以下 $N+1$ 个位置切割木板:

$$ x_1, x_2, \dots , x_N, v $$

其中 $v$ 是用户选择的一个数。然后,所有长度有限的碎片将被排序并由锯木厂输出。Alma 想要知道这些数字 $x_1, x_2, \dots , x_N$,但似乎没有人知道锯木厂内部是什么样子的。因此,她计划通过送入一些精心选择 $v$ 值的木板来推导出这些数字。

有 $N$ 个介于 $1$ 和 $10^9$ 之间的秘密整数 $x_1 < x_2 < \dots < x_N$。请注意,所有这些数字都是互不相同的。你的目标是找到这些数字。你可以向锯木厂发送木板。锯木厂接受一个整数 $v$ 作为输入($1 \leq v \leq 10^9$),并执行以下操作:

  1. 创建列表 $L = [x_1, x_2, \dots , x_N, v]$。
  2. 对 $L$ 进行排序。
  3. 创建列表 $D$,其中对于所有 $i = 1, 2, \dots , N$,有 $D_i = L_{i+1}-L_i$。
  4. 对 $D$ 进行排序,并返回 $D$ 中的 $N$ 个整数。

你最多可以发送 $N$ 块木板,但在子任务 4 中,你最多可以发送 $N+1$ 块木板。

交互

你的程序首先应当读取两个整数 $N$ 和 $T$($1 \leq N \leq 1000$,$1 \leq T \leq 5$)。$N$ 是你需要寻找的秘密数字的个数,$T$ 是测试组编号。输入 $T$ 的目的是为了让你更容易获得部分分。

然后,你可以开始发送木板。输出一行 ? v 以向锯木厂发送一块带有数字 $v$ 的木板。数字 $v$ 必须满足 $1 \leq v \leq 10^9$。接着,你的程序应当在一行中读取 $N$ 个整数,即数字 $D_1, D_2, \dots , D_N$。请注意,如果 $v$ 等于某个 $x_i$,则 $D_1$ 可以为零。

当你找到数字 $x_1, x_2, \dots , x_N$ 时,你应该输出一行,格式如下:

$$! \; x_1 \; x_2 \; x_3 \; \dots \; x_N$$

然后,你的程序应当终止,且不再输出任何内容。

请确保在每次询问后刷新输出缓冲区,否则可能会导致超时(Time Limit Exceeded)。在 C++ 中,这可以通过例如 cout << flushfflush(stdout); 来实现;在 Python 中可以使用 stdout.flush();;在 Java 中可以使用 System.out.flush()

子任务

你的解法将在若干个测试组上进行测试,每个测试组值一定的分数。每个测试组包含若干个测试用例。要获得某个测试组的分数,你需要通过该测试组中的所有测试用例。

子任务 分数 数据范围
$1$ $15$ $N = 1$
$2$ $15$ $N = 2$
$3$ $11$ $x_i \leq N+1$
$4$ $37$ $N \leq 100$,$x_i \leq 10^4$,你最多可以发送 $N+1$ 块木板。
$5$ $22$ 无附加限制。

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.