#P17029. [NWERC 2020] Dragon Balls

[NWERC 2020] Dragon Balls

背景

译自 Northwestern Europe Regional Contest (NWERC) 2020

题目描述

在那美克星与弗利萨的决战中,克林又一次死了,需要用 Dragon Balls(龙珠)把他复活。由于其他人仍在忙着和弗利萨战斗,找回全部七颗龙珠的任务就落到了你的身上。

龙珠被藏在二维平面中未知的位置。布尔玛设计并交给你一个龙珠雷达,你必须使用它来定位这些龙珠。你可以反复飞到任意位置,雷达随后会告诉你到最近一颗龙珠的距离。如果这个距离是 00,就意味着你找到了其中一颗龙珠,然后你可以重新校准雷达,让它在之后忽略你刚刚找到的这颗龙珠。

战斗仍在继续,而且雷达的能量有限,显然你非常赶时间。你必须保证使用雷达不超过 10001000 次就收集到所有龙珠。

交互格式

这是一道交互题。你的提交程序会和一个 interactor(交互器)一起运行;交互器会读取你的程序的标准输出,并向你的程序的标准输入写入内容。本题交互必须遵循如下协议:

交互器首先发送一个整数 nn1n71 \le n \le 7),表示你仍需要找到的龙珠数量。这 nn 颗龙珠隐藏在整数坐标 (x,y)(x,y) 上,并满足 0x,y1060 \le x,y \le 10^6。你的程序不能猜测这个区域之外的位置。

之后,你的程序可以反复发送一个这样的整数坐标 (x,y)(x,y),交互器会回复一个整数 dd0d210120 \le d \le 2\cdot 10^{12}),表示从 (x,y)(x,y) 到最近一颗尚未找到的龙珠的距离的平方。

如果 d=0d=0,则位于 (x,y)(x,y) 的龙珠被认为已经找到,并会在之后的猜测中被忽略。当所有龙珠都被找到后,你的程序应当退出。每个位置至多有一颗龙珠。

请确保在每次输出之后刷新缓冲区。

题目提供了一个测试工具,帮助你开发你的解法。

输出格式

无。

1

25

2

0

0 0

3 4

4 3
2

8

0

1

0

2 1

5 5

4 2

4 3

提示

【数据规模与约定】

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