P17029 [NWERC 2020] 龙珠 / Dragon Balls

题目背景

译自 [Northwestern Europe Regional Contest (NWERC) 2020](http://2020.nwerc.eu)。

题目描述

在那美克星与弗利萨的决战中,克林又一次死了,需要用 **Dragon Balls**(龙珠)把他复活。由于其他人仍在忙着和弗利萨战斗,找回全部七颗龙珠的任务就落到了你的身上。 龙珠被藏在二维平面中未知的位置。布尔玛设计并交给你一个龙珠雷达,你必须使用它来定位这些龙珠。你可以反复飞到任意位置,雷达随后会告诉你到最近一颗龙珠的距离。如果这个距离是 $0$,就意味着你找到了其中一颗龙珠,然后你可以重新校准雷达,让它在之后忽略你刚刚找到的这颗龙珠。 战斗仍在继续,而且雷达的能量有限,显然你非常赶时间。你必须保证使用雷达不超过 $1000$ 次就收集到所有龙珠。 ### 交互格式 这是一道交互题。你的提交程序会和一个 *interactor*(交互器)一起运行;交互器会读取你的程序的标准输出,并向你的程序的标准输入写入内容。本题交互必须遵循如下协议: 交互器首先发送一个整数 $n$($1 \le n \le 7$),表示你仍需要找到的龙珠数量。这 $n$ 颗龙珠隐藏在整数坐标 $(x,y)$ 上,并满足 $0 \le x,y \le 10^6$。你的程序不能猜测这个区域之外的位置。 之后,你的程序可以反复发送一个这样的整数坐标 $(x,y)$,交互器会回复一个整数 $d$($0 \le d \le 2\cdot 10^{12}$),表示从 $(x,y)$ 到最近一颗尚未找到的龙珠的距离的平方。 如果 $d=0$,则位于 $(x,y)$ 的龙珠被认为已经找到,并会在之后的猜测中被忽略。当所有龙珠都被找到后,你的程序应当退出。每个位置至多有一颗龙珠。 请确保在每次输出之后刷新缓冲区。 题目提供了一个测试工具,帮助你开发你的解法。

输入格式

输出格式

无。

说明/提示

【数据规模与约定】 - $1 \le n \le 7$。 - 每个龙珠坐标 $(x,y)$ 均为整数,且 $0 \le x,y \le 10^6$。 - 每次询问也必须是满足 $0 \le x,y \le 10^6$ 的整数坐标。 - 交互器返回 $d$,满足 $0 \le d \le 2\cdot 10^{12}$,表示到最近剩余龙珠距离的平方。 - 最多可以使用雷达 $1000$ 次。 - 每个位置至多有一个龙珠。