P14824 [ICPC 2023 Yokohama R] Probing the Disk
题目描述
**这是一道交互题。**
一个薄薄的黑色圆盘平放在一个白色盒子的方形底部。盒子底部的边长是 $10^5$ 个单位。
出于某种原因,你不被允许直接观察盒子内部,但你想知道这个圆盘有多大以及它放在盒子底部的什么位置。你知道这个圆盘是一个标准的圆形,半径为整数单位,不小于 $100$ 个单位,并且其圆心到盒子底部各边的距离也是整数单位。当然,圆盘的半径不大于其圆心到盒子底部任意一边的距离。
你可以通过向盒子底部投射一条细长的光线线段来探测这个圆盘。由于圆盘和盒子底部的反射系数差异很大,从整体反射强度中,你可以判断出线段照射到圆盘部分的长度。
你的任务是通过重复探测来确定圆盘的确切位置和大小。
### 交互
你可以重复进行探测,每次探测包括发送一个查询和接收其响应。你最多可以探测 $1024$ 次。
查询应以以下格式发送到标准输出,后跟一个换行符。
$$
\text{query} \ x_1 \ y_1 \ x_2 \ y_2
$$
这里,$(x_1, y_1)$ 和 $(x_2, y_2)$ 是光线线段两个端点的位置。它们必须表示不同的点。坐标系设定为盒子底部的一个角是原点 $(0, 0)$,对角顶点的坐标是 $(10^5, 10^5)$。$x_1$、$y_1$、$x_2$ 和 $y_2$ 都必须是 $0$ 到 $10^5$ 之间(含)的整数。
响应此查询后,一个实数将发送到标准输入,后跟一个换行符。该数字表示线段照射到圆盘部分的长度。它以十进制表示,不带指数部分,小数点后保留 $7$ 位数字。该数字可能包含不超过 $10^{-6}$ 的绝对误差。
当你通过探测确信圆盘的位置和大小时,你可以发送答案。答案应包含圆盘的中心位置和半径。它应以以下格式发送到标准输出,后跟一个换行符。
$$
\text{answer} \ x \ y \ r
$$
这里,$(x, y)$ 应是圆盘中心的位置,$r$ 是圆盘的半径。$x$、$y$ 和 $r$ 都必须是整数。
发送答案后,你的程序应终止,不得有任何额外输出。因此,你只能发送一次答案。
### 交互判题说明
当你的输出违反上述任何条件时(答案错误、格式无效、$x_1$、$y_1$、$x_2$ 或 $y_2$ 超出范围、查询次数过多、发送答案后有额外输出等),你的提交将被判为错误答案。由于某些环境要求刷新输出缓冲区,请确保你的输出实际被发送。否则,你的输出将永远不会到达判题机。
~~我们提供了一个命令行工具用于本地测试。更多详情,请参阅竞赛系统中的说明。~~
输入格式
无
输出格式
无
说明/提示
:::align{center}

图 K.1. 样例交互
:::