#HK5428. 「OOI 2017 Day 2」机器人与田野

「OOI 2017 Day 2」机器人与田野

题目描述

题目译自 Open Olympiad in Informatics 2017 Day2 T2 「Робот в поле / Robot on the Field

安德鲁最喜欢的活动是玩电脑游戏。最近,他发现了一款非常有趣的新游戏。

游戏的世界是一个无限的田野,被划分为许多格子,每个格子都有其游戏内的坐标。玩家控制一个机器人,初始位置在坐标为 (0,0)(0, 0) 的格子。通过按下键盘上的相应按键,玩家可以将机器人向左、向上、向右和向下移动。具体来说,机器人控制方式如下:

  • 按下按键 L\texttt{L},玩家将机器人的第一坐标减 11
  • 按下按键 U\texttt{U},玩家将机器人的第二坐标加 11
  • 按下按键 R\texttt{R},玩家将机器人的第一坐标加 11
  • 按下按键 D\texttt{D},玩家将机器人的第二坐标减 11

玩家的任务是将机器人引导到指定的坐标 (x,y)(x, y)。对你们中的某些人来说,这款游戏可能看起来很简单,但安德鲁却始终无法通过。最后,他感到非常绝望,并向他的朋友热尼亚询问了通关所需的按键顺序。但事情并不简单!热尼亚的通关方法并不适合安德鲁,可能是因为热尼亚的目标是不同的格子,这让安德鲁非常生气!他用力按下了一些按键,结果这些按键坏掉了,不再响应按压。令他惊讶的是,安德鲁发现这些损坏的按键甚至可能对他有帮助!

安德鲁决定测试是否仍然可以利用热尼亚的通关方法,并在某些按键按下后损坏一些按键来完成游戏。如果某个按键损坏了,那么在后续按下该按键时,机器人将不会改变位置。安德鲁可以在某些按键按下后损坏任意按键,甚至可以在同一次按键后损坏多个按键。此外,如果这有助于到达目标格子,他还可以在游戏开始前损坏任意按键。即使目标达成,安德鲁也会损坏剩余的按键,以便不再回到这款游戏。

他请求你帮助他解决这个问题。

输入格式

输入数据的第一行包含一个整数 nn (1n1000000)(1 \leq n \leq 1000000),表示热尼亚通关游戏中的移动次数。

第二行包含 nn 个字符 L,U,R,D\texttt{L}, \texttt{U}, \texttt{R},\texttt{D},描述通关的移动序列。

第三行包含一对数字 xxyy1000000x,y1000000-1000000 \leq x, y \leq 1000000),表示机器人需要在所有按键按下后到达的格子坐标。

输出格式

如果无论如何损坏按键都无法帮助安德鲁完成游戏,则输出单个数字 1-1

否则,输出四个数字,分别表示在哪些按键按下后需要损坏按键 L,U,R,D\texttt{L}, \texttt{U}, \texttt{R},\texttt{D}。如果需要在游戏开始前损坏某个按键,则为该按键输出数字 00。由于安德鲁会在游戏结束后损坏剩余完好的按键,因此对于每个按键,你必须输出一个在 00nn 范围内的数字。

如果存在多个正确的答案,可以输出其中任意一个。

4
LRUD
3 2

-1

在第一个样例中,目标格子距离起始位置太远,无法在最多 44 次按键内到达。

4
DURL
0 0

0 0 0 0

在第二个样例中,可以在游戏开始时损坏所有按键,这样机器人将不会移动,并自动停留在所需位置。

8
LLURDRRD
1 -1

1 7 6 8

在第三个样例中,如果按照答案中指示的方式损坏按键,机器人最终执行的动作序列将为 "LURDRD",并将其引导到所需位置。

数据范围与提示

详细子任务附加限制及分值如下表所示。其中子任务 00 是样例。

子任务 分值 附加限制 子任务依赖 备注
11 3232 n20n \leq 20
22 2929 n500n \leq 500 010 \sim 1
33 3939 020 \sim 2