#P14824. [ICPC 2023 Yokohama R] Probing the Disk

    ID: 14741 远端评测题 2000ms 2048MiB 尝试: 0 已通过: 0 难度: 6 上传者: 标签>计算几何二分2023交互题Special JudgeICPC横浜

[ICPC 2023 Yokohama R] Probing the Disk

Description

这是一道交互题。

一个薄薄的黑色圆盘平放在一个白色盒子的方形底部。盒子底部的边长是 10510^5 个单位。

出于某种原因,你不被允许直接观察盒子内部,但你想知道这个圆盘有多大以及它放在盒子底部的什么位置。你知道这个圆盘是一个标准的圆形,半径为整数单位,不小于 100100 个单位,并且其圆心到盒子底部各边的距离也是整数单位。当然,圆盘的半径不大于其圆心到盒子底部任意一边的距离。

你可以通过向盒子底部投射一条细长的光线线段来探测这个圆盘。由于圆盘和盒子底部的反射系数差异很大,从整体反射强度中,你可以判断出线段照射到圆盘部分的长度。

你的任务是通过重复探测来确定圆盘的确切位置和大小。

交互

你可以重复进行探测,每次探测包括发送一个查询和接收其响应。你最多可以探测 10241024 次。

查询应以以下格式发送到标准输出,后跟一个换行符。

query x1 y1 x2 y2\text{query} \ x_1 \ y_1 \ x_2 \ y_2

这里,(x1,y1)(x_1, y_1)(x2,y2)(x_2, y_2) 是光线线段两个端点的位置。它们必须表示不同的点。坐标系设定为盒子底部的一个角是原点 (0,0)(0, 0),对角顶点的坐标是 (105,105)(10^5, 10^5)x1x_1y1y_1x2x_2y2y_2 都必须是 0010510^5 之间(含)的整数。

响应此查询后,一个实数将发送到标准输入,后跟一个换行符。该数字表示线段照射到圆盘部分的长度。它以十进制表示,不带指数部分,小数点后保留 77 位数字。该数字可能包含不超过 10610^{-6} 的绝对误差。

当你通过探测确信圆盘的位置和大小时,你可以发送答案。答案应包含圆盘的中心位置和半径。它应以以下格式发送到标准输出,后跟一个换行符。

answer x y r\text{answer} \ x \ y \ r

这里,(x,y)(x, y) 应是圆盘中心的位置,rr 是圆盘的半径。xxyyrr 都必须是整数。

发送答案后,你的程序应终止,不得有任何额外输出。因此,你只能发送一次答案。

交互判题说明

当你的输出违反上述任何条件时(答案错误、格式无效、x1x_1y1y_1x2x_2y2y_2 超出范围、查询次数过多、发送答案后有额外输出等),你的提交将被判为错误答案。由于某些环境要求刷新输出缓冲区,请确保你的输出实际被发送。否则,你的输出将永远不会到达判题机。

我们提供了一个命令行工具用于本地测试。更多详情,请参阅竞赛系统中的说明。


60000.0000000

0.0000000

12315.3774869
query 40000 0 40000 100000

query 0 10000 100000 10000

query 60000 60000 80000 80000

answer 40000 60000 30000

Hint

:::align{center}

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