QOJ.ac

QOJ

时间限制: 10 s 内存限制: 1024 MB 总分: 100

#133. 任性清洁工

统计

Ichiro 赢得了一个编程竞赛的奖品:最新款的扫地机器人。这个扫地机器人可以在房子里自动移动进行清扫。由于 Ichiro 的房子非常大,它可以被建模为一个无限的二维笛卡尔平面,其坐标轴分别称为 $X$ 和 $Y$。如果你面向 $X$ 轴的正方向,那么 $Y$ 轴的正方向就在你的左侧。

扫地机器人执行一系列动作进行清扫。每个动作由一次转向和一段移动组成。在一次动作中,机器人首先向左或向右转动 90 度,然后向它所面向的方向直线移动一段整数长度。一天结束时,机器人会向 Ichiro 报告当天的动作日志,以便告知他哪些地方清扫过,哪些地方没有。

与普通扫地机器人不同,这款机器人拥有类似人类的人工智能。因此,它非常健忘(像人类一样),它可能会忘记转向的方向,或者只记得移动距离的一个大概范围。然而,为了假装运行正常,机器人在清扫结束后必须恢复完整的动作日志。机器人最初位于点 $(0, 0)$,面向 $X$ 轴的正方向。给定清扫结束后的位置 $(X, Y)$ 以及机器人记住的不完整动作日志,请根据不完整日志恢复出一份完整的日志。恢复后的日志必须满足以下约束:

  • 动作的总数必须与不完整日志中的相同。
  • 如果第 $i$ 次转向在不完整日志中有记录,则恢复后的第 $i$ 次转向方向必须与之相同。
  • 第 $i$ 次移动的长度必须在不完整日志中指定的长度范围内。
  • 机器人完成所有动作后必须位于 $(X, Y)$。清扫结束后的朝向并不重要,你无需关心,因为机器人可以在清扫结束后自由转向,尽管它在清扫结束后不能再移动。你不需要恢复实际的路径,因为 Ichiro 只检查日志的格式和清扫结束后的位置。

输入格式

输入包含单个测试用例。第一行包含三个整数 $N$ ($1 \le N \le 50$),$X$ 和 $Y$ ($-10^9 \le X, Y \le 10^9$)。$N$ 表示不完整日志中的动作数量。$X$ 和 $Y$ 表示清扫结束后机器人的位置 $(X, Y)$。接下来的 $N$ 行,第 $i$ 行包含一个字符 $D_i$ 和两个整数 $LL_i$ 和 $LU_i$。$D_i$ 表示第 $i$ 次转向的方向:‘L’、‘R’ 和 ‘?’ 分别代表左转、右转和未记录。$LL_i$ 和 $LU_i$ 分别表示第 $i$ 次移动长度的下界和上界。你可以假设 $1 \le LL_i \le LU_i \le 55\,555\,555$。

输出格式

显示恢复后的日志。第一行显示 $N$,即日志中的动作数量。接下来的 $N$ 行中,第 $i$ 行显示第 $i$ 次转向的方向字符和第 $i$ 次移动的长度,中间用单个空格隔开。右转用字符 ‘R’ 表示,左转用字符 ‘L’ 表示。恢复后的日志必须满足题目中的约束。如果存在多个满足约束的日志,你可以输出其中任意一个。如果不存在满足约束的日志,则输出 -1。

样例

输入 1

2 -3 4
L 2 5
? 3 5

输出 1

2
L 4
L 3

输入 2

5 3 -4
? 1 5
? 1 5
? 1 5
? 1 5
? 1 5

输出 2

5
L 1
R 2
R 4
L 1
R 1

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.