这是一个交互式问题。
Pin 是一位狂热的发明家,他喜欢用废料制造各种奇妙的机械和机器人。在制造他新的垃圾场作业机器人时,Pin 犯了一个错误,过早地激活了机器人的 AI,导致机器人不可预知地跑进了垃圾场。
Pin 想进入垃圾场把机器人找回来,但这个区域实在太大了。机器人在安装 GPS 追踪器之前就跑掉了,所以 Pin 不知道机器人确切的坐标。如果能有一种方法粗略估计机器人在哪里就好了……
Pin 记得机器人的某个部件中有一个自主无线电中继器。如果 Pin 发送特定的无线电信号,回复将至少提供一些重要信息:他与机器人之间的距离,这可以用于三角测量。
Pin 的垃圾场是一个巨大的正方形,其对角位于点 $(0, 0)$ 和 $(100, 100)$,小路平行于正方形的边,在整数坐标点处相交。机器人的 AI 被编程为停留在垃圾场内(包括垃圾场边界)的某个随机路径交叉点处并在那里工作。
不幸的是,对于 Pin 来说,流氓机器人中的安全算法使任务变得复杂。每次机器人检测到搜索无线电信号时,它都会移动到相邻的交叉点。Pin 决定,找到机器人最初所在的交叉点,然后通过搜索周围的多个交叉点来找到它,会更容易、更合理。
Pin 不想在知道机器人在哪里之前进入垃圾场,所以他将从周围区域使用他的无线电。但他不会超出他的私人领地,该领地包含所有距离垃圾场边界垂直或水平距离不超过 $1000$ 的点。
交互
你的程序可以按以下格式打印行:
- “Q $X$ $Y$”:询问点 $(X, Y)$ 与机器人之间的距离。该点位于垃圾场外,但在私人领地内。系统会打印一行,包含一个整数 $R^2$:请求距离的平方。在此之后,机器人会立即移动到相邻的交叉点。
- “A $X$ $Y$”:声称机器人在测量开始前最初位于点 $(X, Y)$。打印此行后,程序必须立即正常终止。
两种类型的打印行总数不得超过 $5$ 行。
样例
输入 1
25 4
输出 1
Q 101 101 Q 97 101 A 97 98
说明
该样例展示了解决方案与测试系统之间的一种可能的交互过程。样例中的空行仅用于展示事件的顺序。
不要忘记在输出每一行后刷新缓冲区!以下是不同语言中执行此操作的一些函数:
- C++:
fflush(stdout)或cout.flush() - Python:
sys.stdout.flush() - Java:
System.out.flush()