这是一个交互式问题。
一个薄的黑色圆盘平放在一个白色盒子的方形底部。盒子底部的边长为 $10^5$ 个单位。
你无法直接观察盒子内部,但你需要确定圆盘的大小及其在盒子底部的位置。已知圆盘是一个正圆,半径为整数且不小于 $100$ 个单位,其圆心到盒子底部各边的距离均为整数。当然,圆盘的半径不大于圆心到盒子底部任意一边的距离。
你可以通过向盒子底部投射一条细光线段来探测圆盘。由于圆盘和盒子底部的反射系数完全不同,根据总反射强度,你可以得知线段中照射到圆盘上的部分的长度。
你的任务是通过重复探测来确定圆盘的确切位置和大小。
交互
你可以重复进行探测,每次探测包括发送一个查询并接收其响应。你最多可以进行 $1024$ 次探测。
查询应按以下格式发送到标准输出,并以换行符结尾:
query x1 y1 x2 y2
其中 $(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}$ 的绝对误差。
当你通过探测确定了圆盘的位置和大小后,可以发送你的答案。答案应包含圆盘的圆心位置和半径。它应按以下格式发送到标准输出,并以换行符结尾:
answer x y r
其中 $(x, y)$ 应为圆盘圆心的位置,$r$ 为圆盘的半径。$x, y$ 和 $r$ 均应为整数。
发送答案后,你的程序应立即终止,且不得有任何额外输出。因此,你只能发送一次答案。
交互式评测说明
当你的输出违反了上述任何条件(答案错误、格式无效、$x_1, y_1, x_2$ 或 $y_2$ 超出范围、查询次数过多、发送答案后有额外输出等)时,你的提交将被判为错误答案(Wrong Answer)。由于某些环境需要刷新输出缓冲区,请确保你的输出确实已发送。否则,你的输出将永远无法到达评测机。
你将获得一个用于本地测试的命令行工具。更多详细信息,请参考竞赛系统中的说明。
样例
样例交互
query 40000 0 40000 100000 60000.0000000 query 0 10000 100000 10000 0.0000000 query 60000 60000 80000 80000 12315.3774869 answer 40000 60000 30000
图 K.1. 样例交互