#AT0183. 波特
波特
题目描述
新一代机器人『波特』诞生了。现在,小 w 作为波特的开发者,正在对波特进行测试。波特被放在了一个无限大的平面中,初始时位于原点 。
小 w 会给波特发送一个只含字符 U
、D
、R
、L
的字符串。字符串的每一个字母都是一次移动指令,四个字母的含义如下:
U
:机器人向上移动一格,假设机器人当前坐标为 ,则移动到 。D
:机器人向下移动一格,假设机器人当前坐标为 ,则移动到 。R
:机器人向右移动一格,假设机器人当前坐标为 ,则移动到 。L
:机器人向左移动一格,假设机器人当前坐标为 ,则移动到 。
平面上有一些障碍物,障碍物均位于整点坐标上。如果机器人的下一个移动会移动到障碍物上,那么它将忽略这个移动指令,并尝试执行接下来的移动指令。
当指令执行结束后,机器人将会停止运动。
遗憾的是,因为权限不足,小 w 并不知道平面上有哪些位置有障碍物。因此,他想向你询问,对于障碍物所有可能的分布,机器人一共可能在哪些位置停下。
提示:机器人刚开始在坐标原点 ,这个原点不会有障碍物。
输入格式
输入的第一行是一个整数,表示字符串的长度 。
第二行有一个长度为 的字符串 ,表示给出的指令串。
输出格式
输出的第一行是一个整数 ,表示机器人可能停下的位置。
接下来 行,每行两个整数 ,用空格隔开,表示一个机器人可能停下的坐标。
注意,你应该按 从小到大的顺序输出这些坐标。当两个坐标的 相同时,先输出 较小的坐标。
样例
2
UR
4
0 0
0 1
1 0
1 1
提示
【样例解释】
如果没有障碍物,机器人会执行 UR
指令,来到
如果 有障碍物,那么机器人会跳过 U
指令,执行 R
指令,来到
如果 有障碍物,那么机器人会跳过 R
指令,停留在
如果 都有障碍物,那么机器人会跳过 UR
两个指令,停留在
【数据范围】
对于全部的测试点,保证 , 中仅含字母 U
、D
、R
、L
。
测试点 | 特殊性质 | |
---|---|---|
无 | ||
中仅含字符 R | ||
中仅含字符 L 和 R | ||
中仅含字符 U 和 D | ||
无 | ||