#3267. 巡逻机器人

巡逻机器人

题目描述

小 Z 有一个 nn 行 mm 列的矩形场地。场地中每个格子要么是空地,要么是障碍物。我们用字符 .\tt{.} 表示空地,用字符 #\tt{\#} 表示障碍物。

场地中有一台巡逻机器人,初始时它位于第 rr 行第 cc 列(行、列均从 11 开始编号),朝向为东(即"向右")。

机器人会依次执行一条长度为 LL 的指令串,指令串只由 F\tt F、L\tt L、R\tt R 三种字符组成,含义如下:

  • F\tt F:尝试向前移动一格。如果机器人前方一格仍在场地内,并且那个格子是空地,机器人就移动到该格;否则机器人停留在原地,并且这一次"受阻"会被记录下来。
  • L\tt L:原地向左转 9090 度。不移动,也不计受阻。
  • R\tt R:原地向右转 9090 度。不移动,也不计受阻。

请你求出:全部指令执行完之后,机器人所在的行号、列号,以及整个过程中"受阻"的总次数。

输入格式

第一行包含三个整数 n,m,Ln,m,L,分别表示场地的行数、列数和指令串的长度。

第二行包含两个整数 r,cr,c,表示机器人的初始位置。

接下来 nn 行,每行一个长度为 mm 的、仅由 .\tt{.} 和 #\tt{\#} 组成的字符串,描述场地。保证第 rr 行第 cc 个字符是 .\tt{.}。

最后一行包含一个长度为 LL 的、仅由 F\tt F、L\tt L、R\tt R 组成的字符串,表示指令串。

输出格式

输出一行三个整数,依次表示机器人最终所在的行号、列号和受阻的总次数,相邻两个整数之间用一个空格隔开。

3 4 6
1 1
....
....
....
FFRFFR
3 3 0
3 3 8
2 2
...
.#.
...
FFRFFLFF
3 3 4

数据范围与提示

【样例 1 解释】

初始时机器人在第 11 行第 11 列,朝东。

  • F\tt F:向东移动到 (1,2)(1,2);
  • F\tt F:向东移动到 (1,3)(1,3);
  • R\tt R:原地转向,朝南;
  • F\tt F:向南移动到 (2,3)(2,3);
  • F\tt F:向南移动到 (3,3)(3,3);
  • R\tt R:原地转向,朝西。

全程没有受阻,最终位于第 33 行第 33 列,故输出 3 3 0\tt{3\ 3\ 0}。

【样例 2 解释】

初始时机器人在第 22 行第 22 列,朝东。

指令 说明 受阻次数
F\tt F 向东移动到 (2,3)(2,3) 00
向东要到 (2,4)(2,4),超出场地,留在原地 11
R\tt R 转向,朝南
F\tt F 向南移动到 (3,3)(3,3)
向南要到 (4,3)(4,3),超出场地,留在原地 22
L\tt L 转向,朝东
F\tt F 向东超出场地,留在原地 33
44

最终位于第 33 行第 33 列,共受阻 44 次,故输出 3 3 4\tt{3\ 3\ 4}。

【数据范围】

对于所有测试数据,保证:

  • 1≤n,m≤10001 \le n,m \le 1000;
  • 1≤L≤1061 \le L \le 10^6;
  • 1≤r≤n1 \le r \le n,1≤c≤m1 \le c \le m,且第 rr 行第 cc 个字符为 .\tt{.};
  • 指令串中只包含 F\tt F、L\tt L、R\tt R 三种字符。
测试点编号 n≤n \le m≤m \le L≤L \le 特殊性质
11 11 11 1010 无
22 55 3030
33 55 11
44 33 6060
55 1010 10310^3 A
6∼86\sim 8 无
9∼109\sim 10 5050 2×1042 \times 10^4
11∼1211\sim 12 100100 10510^5
13∼1413\sim 14 500500 5×1055 \times 10^5
1515 10001000 10001000 10610^6 A
16∼1716\sim 17 无
1818 11 A
1919 11 10001000
2020 10001000

特殊性质 A:场地中不存在障碍物。