P14216 [COI 2010] 机器人 / ROBOTI

题目背景

译自 [COI 2010 T4](https://hsin.hr/hio2010/zadaci/)。

题目描述

**本题为交互题。** 两个机器人在仓库中迷路了。他们的编号为 $1$ 和 $2$。仓库是一个拥有 $R$ 行 $C$ 列的网格,每个格子可能是障碍或者空地。机器人用广播来遥控,每条广播包含两部分信息: - `robot`:一个整数 $1$ 或者 $2$,表示我们操纵的机器人。 - `direction`:一个字符 `U`、`D`、`L` 或者 `R`,代表我们要机器人移动的方向(上、下、左、右)。 如果目的地是一个障碍、另一个机器人、或者在仓库的外面,机器人留在原地什么都不会发生。否则机器人会移动到目的地内。 两个机器人都配备了 GPS 设备,但是由于故障我们只能得知两个机器人之间的**曼哈顿距离**。如果机器人的位置分别是 $(r_1, c_1)$ 和 $(r_2, c_2)$,他们的曼哈顿距离即为 $\lvert r_1 - r_2 \rvert + \lvert c_1 - c_2 \rvert$。 每一个指令不管结果如何,我们唯一能知道的就是两个机器人的曼哈顿距离。 机器人处于仓库中两个不同的空地上。写一个程序,可以输出一段指令让两个机器人能够分别到达两个特别的出口。 保证仓库内所有的空地是联通的。

输入格式

在与机器人交互前,先有一些输入内容。 第一行两个整数 $R, C$ $(2 \le R, C \le 200)$,表示仓库的行数和列数。 接下来 $R$ 行,每行 $C$ 个字符,每一个都是 `.`、`#` 或 `x` 中的一种。`.` 表示空地,`#` 表示障碍,`x` 表示两个出口中的一个。保证一定恰好有两个 `x` 字符。 接下来的一行表示起始的曼哈顿距离。 每当你输出一行指令之后,会有新的一行输入,表示新的曼哈顿距离。

输出格式

当开始交互的时候,每一次你可以向标准输出输出一行指令,形如 `robot direction`。行末需要有一个换行符。每一次输出完之后,你需要刷新缓冲区。而后你将从标准输入得到新的曼哈顿距离。 当你进行完所有的操作之后,输出一行一个字符 `0`,然后**退出你的程序并返回 $0$**。

说明/提示

对于 $40\%$ 的数据,网格中没有障碍。 对于 $80\%$ 的数据,$R, C \le 50$。