在本题中,你需要使用一条非最短的简单路径,从一个 $4 \times 4$ 的网格的一个角走到对角。
平面上有一个由 $4 \times 4$ 个格子组成的网格。网格中的每个格子要么是空的,要么完全被墙占据。
机器人 Aurelius 正在通过解决该网格上的各种问题来接受智力水平测试。他已经完成了寻找任意路径以及两格之间最短路径的部分。
下一个任务要求 Aurelius 通过空格子从网格的左上角走到右下角。单步移动是指从当前格子移动到与其共边的任何其他格子。路径必须是简单的,也就是说,对于每个格子,机器人最多只能访问一次。此外,路径的长度必须严格大于给定网格上两角之间最短路径的长度。路径的长度是指该路径上的步数。
编写一个程序来帮助机器人 Aurelius 完成这项任务。
输入格式
输入包含一个或多个测试用例。每个测试用例由四行给出。其中的每一行描述网格的一行,并且恰好包含四个字符,定义该行的格子。空格子用字符 .(点,ASCII 码 46)表示,墙用字符 #(井号,ASCII 码 35)表示。相邻的测试用例之间用一行由四个字符 -(减号,ASCII 码 45)组成的行隔开。
保证左上角的格子和右下角的格子都是空的。此外,保证单个输入中的所有测试用例都是互不相同的。
输出格式
对于每个测试用例,输出一行定义所需路径。该行必须由对应于移动到相邻格子的命令字符按执行顺序组成:D 表示向下移动,U 表示向上移动,L 表示向左移动,R 表示向右移动。如果有多种可能的路径,输出其中任意一种。如果不存在满足要求的路径,则输出数字 -1 代替路径。
样例
输入样例 1
.#.. .... ..#. .#.. ---- ..## ...# #... .#.. ---- ...# ..#. .#.. #...
输出样例 1
DDRURURDDD -1 -1
说明
样例包含三个测试用例。
在第一个测试用例中,最短路径的长度为 6 步:唯一的最短路径是 DRRRDD。除此之外,还有三条非最短的简单路径:长度为 8 的路径 DDRURRDD 和 DRRURDDD,以及长度为 10 的路径 DDRURURDDD。输出其中任意一条即可。
在第二个测试用例中,有 8 条可能的简单路径,但它们的长度都相同,因此它们全都是最短路径。
在第三个测试用例中,不存在一条由空格子组成的、从网格左上角到右下角的路径。