#JXGQ24016. 冰壶挑战
冰壶挑战
题目描述
强哥参加了学校举办的冰壶挑战赛。比赛场地是一个 的矩形冰场,其中 表示第 行第 列。
冰场被表示为 个字符串 ,每个字符串长度为 。
冰场的每个格子要么是光滑的冰面(用 .
表示),要么是粗糙的岩石障碍(用 #
表示)。
冰场的四周(第 行、第 行、第 列、第 列)都设置了岩石障碍作为边界,确保冰壶不会飞出场地。强哥的冰壶起始位置在 ,这个位置一定是冰面。
强哥可以推动冰壶零次或多次。每次推动时,他先选择一个方向(上、下、左、右),然后冰壶会沿着这个方向一直滑动,直到碰到岩石障碍才会停下(冰壶不会停在非冰面的格子上,但会经过这些格子)。
现在需要计算强哥的冰壶能够到达或经过的所有格子数量(包括滑行过程中经过的格子)。
输入格式
N M
S1
S2
...
SN
第一行两个正整数 和 ,表示冰场的长和宽。 接下来 行,每行一个长度为 的字符串,表示冰场的布局。
输出格式
输出一个整数,表示冰壶能到达或经过的格子总数。
输入输出样例
样例 1
输入
6 6
######
#....#
#.#..#
#..#.#
#....#
######
输出
12
说明 冰壶可以经过 ,移动路径为: 也可以经过 ,移动路径为:(途经 ) 但无法到达 。
样例 2
输入
21 25
#########################
#..............###...####
#..............#..#...###
#........###...#...#...##
#........#..#..#........#
#...##...#..#..#...#....#
#..#..#..###...#..#.....#
#..#..#..#..#..###......#
#..####..#..#...........#
#..#..#..###............#
#..#..#.................#
#........##.............#
#.......#..#............#
#..........#....#.......#
#........###...##....#..#
#..........#..#.#...##..#
#.......#..#....#..#.#..#
##.......##.....#....#..#
###.............#....#..#
####.................#..#
#########################
输出
215
数据范围
- 字符串 仅包含字符
.
和#
- 场地边界都是
#
(岩石) - 起始位置 一定是
.
(冰面)