#930. 迷路的高桥君
迷路的高桥君
题目描述
给定一个 行 列的网格。
网格的每个格子是陆地或海洋,由 个长度为 的字符串 表示。记从上往下数第 行、从左往右数第 列的格子为 。如果 的第 个字符是 .,则 是陆地;如果该字符是 #,则 是海洋。
数据保证网格周边的所有格子(即满足 、、 或 至少一个条件的格子 )都是海洋。
高桥君的飞船坠毁在网格的某个格子上。之后,他根据一个长度为 且由 L、R、U、D 组成的指令字符串 在网格上移动了 次。对于 , 的第 个字符描述了第 次移动,规则如下:
L表示向左移动一格。即如果移动前位于 ,移动后将位于 。R表示向右移动一格。即如果移动前位于 ,移动后将位于 。U表示向上移动一格。即如果移动前位于 ,移动后将位于 。D表示向下移动一格。即如果移动前位于 ,移动后将位于 。
已知他路径上的所有格子(包括飞船坠毁时的初始位置以及他当前所在的最终位置)都不是海洋。请计算并输出他当前可能所在的格子数量。
输入格式
第一行包含三个正整数 和 。
第二行包含一个长度为 的字符串 。
接下来 行,每行包含一个长度为 的字符串 —— 表示网格的状态。
输出格式
输出一行,一个整数,表示高桥君当前可能所在的格子数量。
样例输入 1
6 7 5
LULDR
#######
#...#.#
##...##
#.#...#
#...#.#
#######
样例输出 1
2
样例输入 2
13 16 9
ULURDLURD
################
##..##.#..####.#
###.#..#.....#.#
#..##..#####.###
#...#..#......##
###.##.#..#....#
##.#####....##.#
###.###.#.#.#..#
######.....##..#
#...#.#.######.#
##..###..#..#.##
#...#.#.#...#..#
################
样例输出 2
6
说明
样例解释
在第一个样例中,可能有以下两种情况,因此共有两个格子可能是高桥君的当前位置: 和 。
- 他坠毁在格子 并依次移动:$(3, 5) \to (3, 4) \to (2, 4) \to (2, 3) \to (3, 3) \to (3, 4)$。
- 他坠毁在格子 并依次移动:$(4, 6) \to (4, 5) \to (3, 5) \to (3, 4) \to (4, 4) \to (4, 5)$。
数据范围
对于所有测试点,保证 :
- 。
- 。
- 是一个长度为 且仅由
L,R,U,D组成的字符串。 - 是一个长度为 且仅由
.和#组成的字符串。 - 至少存在一个可能的当前位置。
- 网格周边的所有格子均为海洋(
#)。 - 所有的 均为整数。