QOJ.ac

QOJ

Límite de tiempo: 1.0 s Límite de memoria: 256 MB Puntuación total: 100 Interactivo

#17839. 寻找无线电操作员

Estadísticas

施蒂利茨(Stierlitz)正在等待他的新助手——一位即将从飞机上跳伞降落的女发报员。然而,飞行员在漆黑的夜色中偏离了预定地点,将女孩空投到了错误的地方。唯一值得庆幸的是,这个地点是平面上一个具有整数坐标的点……施蒂利茨别无选择,他必须找到这个女孩。对于一位党卫队旗队领袖(Standartenführer)来说,拿着手电筒在灌木丛中乱撞可不是什么体面的消遣,但唉,他没有人可以委派这项任务。他的一个副官正在度假,另一个在酗酒,第三个虽然度完假也戒了酒,但却是个废物。为了应对这一挑战,施蒂利茨从谢伦贝格(Schellenberg)先生那里借来了一个无线电追踪器,正驾车穿过田野,试图精确定位那个可怜的女孩。

这个追踪器是由自学成才的锁匠天才波列索夫(Polesov)发明的最新装置,其工作原理如下:汽车停在平面上的某个点,并将天线指向特定方向,测量信号强度。如果施蒂利茨与发报员站在同一个位置,无论天线指向何方,设备都会显示 $-1$。否则,如果 $\varphi < 90^\circ$,设备显示的信号强度为 $P \cos \varphi / R^2$;如果 $\varphi \ge 90^\circ$,则显示为 $0$。这里 $\varphi$ 是天线方向向量与从施蒂利茨的汽车指向发报员的向量之间的夹角,$R$ 是汽车到发报员的距离,而 $P$ 是一个取决于无线电设备的未知常数。

施蒂利茨必须用少于 10 次的测量来精确定位发报员的位置;更多的测量将会招来竞争对手组织中缪勒(Mueller)的手下。

交互

这是一个交互式任务,您将与一个名为 interactor 的特殊程序进行交互,而不是使用文件输入输出。您将通过标准输入输出流与该程序进行交互。

要进行一次询问,请向标准输出流打印一个问号,后跟四个由空格分隔的整数 $x_0, y_0, x_d, y_d$,其中 $x_0, y_0$ 是施蒂利茨汽车的坐标,$x_d, y_d$ 是天线方向向量的分量($|x_0|, |y_0|, |x_d|, |y_d| \le 10^4$)。方向向量必须为非零向量,即 $|x_d| + |y_d| > 0$。

作为响应,标准输入流将接收到一个实数:设备显示的信号强度。如果该值等于 $-1$,则必须立即停止程序,因为这代表已经找到了发报员。

发报员的坐标为整数,且绝对值不超过 $10^3$。常数 $P$ 是一个介于 $1$ 和 $10^6$ 之间的实数。

请确保在每次打印询问后输出换行符并清空输出流缓冲区(使用编程语言中的 flush 函数)。否则,您的程序可能会因超时(Timeout)而终止。

样例

为了方便阅读,样例中的命令用包含减号的行隔开。您的程序不得输出任何减号。

输入格式 1

-
0.0359999999999999972799536
-
0.0000000000000000000000000
-
0.0089999999999999993199884
-
0.0899999999999999827915431
-
0.1666666666666666574148081
-
-1

输出格式 1

? 0 0 0 1
-
? -2 -3 -1 1
-
? -4 -3 0 100
-
? 3 0 3 1
-
? 4 0 0 1
-
? 4 3 1 1

说明

在样例中,女发报员位于点 $(4, 3)$,常数 $P$ 为 $1.5$。请注意,交互器使用双精度浮点数(double precision)计算信号强度,并输出许多位小数。

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.