QOJ.ac

QOJ

実行時間制限: 4.0 s メモリ制限: 2048 MB 満点: 100 インタラクティブ

#17326. 世纪大劫案

統計

在策划了这起窃取蒙特卡洛伯爵(Count Monte Carlo)皇冠珠宝的最精密抢劫案后,你遇到了路径上的最后一道障碍:一个锁上的保险箱。然而,你已经为这一刻进行了训练,并磨练了你的开锁技能。

保险箱有 $N$ 个拨盘,每个拨盘都可以设置为 $1$ 到 $2N$ 之间的任意整数。蒙特卡洛伯爵为每个拨盘配置了一个正确的秘密值。为了尝试打开保险箱,你需要将每个拨盘设置为你选择的值,然后转动保险箱门把手。如果每个拨盘都设置成了其正确的秘密值,你将不会感到任何阻力,门会立即打开。

当然,通过随机猜测所有正确的秘密值来打开保险箱几乎是不可能成功的。然而,作为一名专家级开锁匠,即使你的猜测是错误的,当你尝试打开门时,你也会感到一些阻力,你可以利用这些信息来帮助破译正确的秘密值。如果一个拨盘的秘密值为 $h$,而当你尝试开门时该拨盘被设置为 $d$,那么该拨盘在转动门把手时会产生 $|h - d|$ 的阻力。你可以感受到所有拨盘中的最大阻力。(注意,如果该值为 $0$,则说明你已成功打开保险箱并完成了抢劫!)

不幸的是,安保团队已经察觉到了你的存在,他们正在向你的位置靠近。你每秒钟可以尝试打开一次保险箱,但他们将在 $4N$ 秒后到达!你能在被抓住之前完成抢劫吗?

交互

这是一个交互式问题。交互开始时,从标准输入读取一个整数 $N$ ($1 \le N \le 500$),表示保险箱上的拨盘数量。你的程序最多可以进行 $4N$ 次尝试来打开保险箱门,每次尝试都需要为每个拨盘指定一个尝试值。每次尝试后,你都会被告知从门把手上感受到的阻力。

进行一次尝试时,打印一行包含 $N$ 个空格分隔的整数 $d_1, d_2, \dots, d_N$ ($1 \le d_i \le 2N$),即你为每个拨盘提出的值。然后从标准输入读取一个整数,表示你从门把手上感受到的阻力,即 $\max_i |h_i - d_i|$,其中 $h_i$ 是拨盘 $i$ 的(对你未知的)秘密值。如果阻力为 $0$,则说明你已经打开了保险箱,你的程序应当终止。否则,如果还有剩余尝试次数,你可以再次尝试。

如果你用尽了尝试次数,你的程序应当正常退出(尽管由于未能及时破解保险箱以逃脱守卫,你将被判为错误)。

每个拨盘的秘密值由蒙特卡洛伯爵在抢劫前预先配置,并且不会随着你的破解尝试而改变。

说明

请记住,在打印每一行后刷新输出流,并在交互完成后正常退出。请确保你严格遵守上述交互协议,关于在输出的哪一行打印什么信息:例如,如果协议要求你在单行上打印一系列空格分隔的整数,评测系统将不会接受将每个整数分行打印。

如果评测系统收到无效或意外的输入,它将打印 $-1$ 并立即退出。你的程序必须检测到此错误报告并正常退出,以便获得“答案错误”(Wrong Answer)判决。如果你的程序阻塞等待评测系统的进一步交互,或者试图将 $-1$ 解释为阻力值,你可能会收到其他拒绝判决(例如“超出时间限制”或“运行时错误”),而不是“答案错误”。

你已获得一个用于本地测试的命令行工具。该工具的顶部有解释其用法的注释。

样例

样例交互 1

交互内容 方向 说明
3 输入 读取拨盘数量 $N=3$
1 1 1 输出 第一次尝试
5 输入 感受到的最大阻力为 $5$
3 4 5 输出 第二次尝试
1 输入 感受到的最大阻力为 $1$
4 5 6 输出 第三次尝试
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.