QOJ.ac

QOJ

حد الوقت: 5 s حد الذاكرة: 32 MB مجموع النقاط: 100

#9507. 机器人

الإحصائيات

有两个机器人迷失在仓库中。机器人编号为 1 和 2。仓库是一个 $R$ 行 $C$ 列的网格,每个格子要么是障碍物,要么是空地。机器人通过无线电指令进行控制。每条指令包含两部分数据: robot - 1 或 2,表示我们要移动的机器人编号。 direction - 字符 'U'、'D'、'L' 或 'R',表示我们希望机器人移动的方向(上、下、左、右)。

如果目标格子是障碍物、被另一个机器人占据或在仓库之外,则什么都不会发生,机器人保持在原地。如果格子是空地,机器人就会移动到该处。

机器人配备了 GPS 设备,但由于部署期间的故障,我们无法接收到机器人的确切位置,只能接收到它们之间的曼哈顿距离。如果机器人在 $(r_1, c_1)$ 和 $(r_2, c_2)$,那么它们的曼哈顿距离为 $|r_1 - r_2| + |c_1 - c_2|$。

在每条指令之后,无论成功与否,我们唯一知道的信息就是当前的距离。

机器人目前位于仓库中不同的、未被占据的位置。编写一个程序,发布一系列指令,将两个机器人放置在仓库中的两个特殊提取点上。指令通过标准输出发出。每条指令后,你必须从标准输入读取当前的距离。

仓库保证所有空地都是连通的。

交互

在与机器人交互之前,会给出一些输入数据。

第一行包含整数 $R$ 和 $C$ ($2 \le R, C \le 200$),即仓库的行数和列数。

接下来的 $R$ 行,每行包含 $C$ 个字符。只会出现字符 '.'、'#' 和 'x'。'.' 表示空地,'#' 表示障碍物,'x' 表示两个提取点之一。会有且仅有两个 'x' 字符。

下一行包含起始的曼哈顿距离。

加载所有输入数据后,你可以开始使用标准输入向机器人发出指令。每条指令必须格式化为 "robot direction",后跟换行符。每条指令后,你必须刷新标准输出。在 C/C++ 中使用 fflush(stdout),在 Pascal 中使用 flush(StdOut)

当你完成指令发布后,打印 "0"(单独占一行)并以返回码 0 退出程序。

子任务

测试用例价值 40 分,不包含障碍物。 测试用例价值 80 分,满足 $R$ 和 $C \le 50$。

说明

你可以使用评估系统中的 TEST 界面测试你的解决方案。对于每个测试,必须提供一个输入文件。输入文件必须遵循以下格式:

输入的第一行必须包含两个整数 $R$ 和 $C$ ($2 \le R, C \le 200$)。

接下来的 $R$ 行必须包含 $C$ 个字符。字符只能是 '.'、'#'、'x'、'1' 和 '2'。必须恰好有两个 'x' 字符。字符 '1' 和 '2' 表示机器人的起始位置。输入中必须恰好各有一个 '1' 和 '2'。当然,当呈现给你的解决方案作为输入时,字符 '1' 和 '2' 将被转换为 '.'。

此类输入文件的示例如下:

4 5
##x1.
.##..
.....
2...x

要在评估系统上测试你的代码,你必须首先使用 SUBMIT 界面提交你的解决方案,然后使用 TEST 界面进行测试。

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.