QOJ.ac

QOJ

時間限制: 1.0 s 記憶體限制: 256 MB 總分: 100 互動

#12345. DIY 雷达

统计

这是一个交互式问题。

Pin 是一位狂热的发明家,他喜欢用废料制造各种奇妙的机械和机器人。在制造他新的垃圾场作业机器人时,Pin 犯了一个错误,过早地激活了机器人的 AI,导致机器人不可预知地跑进了垃圾场。

Pin 想进入垃圾场把机器人找回来,但这个区域实在太大了。机器人在安装 GPS 追踪器之前就跑掉了,所以 Pin 不知道机器人确切的坐标。如果能有一种方法粗略估计机器人在哪里就好了……

Pin 记得机器人的某个部件中有一个自主无线电中继器。如果 Pin 发送特定的无线电信号,回复将至少提供一些重要信息:他与机器人之间的距离,这可以用于三角测量。

Pin 的垃圾场是一个巨大的正方形,其对角位于点 $(0, 0)$ 和 $(100, 100)$,小路平行于正方形的边,在整数坐标点处相交。机器人的 AI 被编程为停留在垃圾场内(包括垃圾场边界)的某个随机路径交叉点处并在那里工作。

不幸的是,对于 Pin 来说,流氓机器人中的安全算法使任务变得复杂。每次机器人检测到搜索无线电信号时,它都会移动到相邻的交叉点。Pin 决定,找到机器人最初所在的交叉点,然后通过搜索周围的多个交叉点来找到它,会更容易、更合理。

Pin 不想在知道机器人在哪里之前进入垃圾场,所以他将从周围区域使用他的无线电。但他不会超出他的私人领地,该领地包含所有距离垃圾场边界垂直或水平距离不超过 $1000$ 的点。

交互

你的程序可以按以下格式打印行:

  1. “Q $X$ $Y$”:询问点 $(X, Y)$ 与机器人之间的距离。该点位于垃圾场外,但在私人领地内。系统会打印一行,包含一个整数 $R^2$:请求距离的平方。在此之后,机器人会立即移动到相邻的交叉点。
  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()

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.