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} ![](https://cdn.luogu.com.cn/upload/image_hosting/3nea866l.png) 图 K.1. 样例交互 :::