QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 512 MB Total points: 100 Interactive

#866. 弹簧展示

Statistics

Elater 是一位伟大的魔术师。他最著名的表演是“Elater 的超级壮观弹簧展示”。表演内容如下:

天花板上悬挂着 $n$ 个弹簧。第 $i$ 个弹簧悬挂在高度 $h_i$ 处,其劲度系数为 $k_i$。如果我们给第 $i$ 个弹簧的下端挂上质量为 $w$ 的重物,重物将下降到高度 $H$,计算公式为:

$$H = h_i - \frac{w}{k_i}$$

Elater 会接受观众的提问。当被问及一个正整数 $w$ 时,Elater 能够选出这样一个弹簧:如果给它的下端挂上质量为 $w$ 的重物,它下降后的高度比所有其他弹簧都低(更靠近地面);如果出现平局,他可以选出下降高度最低的弹簧中的任意一个。为了完成这一壮举,Elater 得到了他的助手 Hooke 的帮助。

在表演开始前,Hooke 有一些时间对弹簧进行测量。他无法直接测量 $h_i$ 和 $k_i$ 的值,但他可以选择两个弹簧 $a$ 和 $b$ 以及一个质量 $w$,尝试将质量为 $w$ 的重物分别挂在两个弹簧上,观察哪一个弹簧挂上重物后更靠近地面。在表演开始前,他最多可以进行 $20\,000$ 次这样的测量。此外,在每次提问后,Elater 可以分散观众的注意力,让 Hooke 再进行最多 $20$ 次测量,然后悄悄地将答案告诉 Elater。

你能帮助 Hooke 让表演成功吗?假设弹簧悬挂得足够高,且重物质量足够小,使得在任何测量过程中重物都不会触及地面。同时请注意,每次测量后重物都会被移除。

交互格式

首先,你必须从输入中读取一个整数 $n$ ($2 \le n \le 500$)。

要进行测量,你必须打印一行格式为 “? $a$ $b$ $w$” 的内容,其中 $a$ 和 $b$ ($0 \le a, b \le n-1$) 是你想要使用的两个弹簧的索引,$w$ ($1 \le w \le 10^5$) 是你想要挂在两个弹簧上的整数质量。之后,你必须从输入中读取一行作为回答,如果弹簧 $a$ 达到的高度更低,则回答为 “FIRST”;如果弹簧 $b$ 达到的高度更低,则回答为 “SECOND”;如果两者达到的高度相同,则回答为 “EQUAL”。

在第一阶段,你最多可以进行 $20\,000$ 次测量。完成第一阶段的所有测量后,打印一行包含单个字符 “!” 的内容。之后,你将收到一个或多个问题。

每个问题以单行格式 “QUESTION $w$” 给出,其中 $w$ 是 Elater 被问及的整数质量 ($1 \le w \le 10^5$)。读取每个问题后,你可以进行最多 $20$ 次测量,格式与第一阶段相同。完成测量后,输出一行格式为 “! $i$” 的内容,其中 $i$ ($0 \le i \le n-1$) 是该问题的答案弹簧索引。如果有多个弹簧达到相同的最低高度,你可以打印其中任意一个。

在所有问题之后,你将收到一行由单词 “FINISH” 组成的输入,而不是下一个问题。这意味着没有更多问题,你的程序必须结束。问题的总数至少为 $1$,最多为 $1000$。

打印每一行后,请务必刷新输出!

在每个测试用例中,$h_i$、$k_i$ 的值以及所有问题都是预先确定的。

样例

输入 1

3
SECOND
QUESTION 2
SECOND
FIRST
QUESTION 6
SECOND
SECOND
FINISH

输出 1

? 0 1 1
!
? 0 1 2
? 1 2 2
! 1
? 0 1 6
? 1 2 6
! 2

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.