#P2412. 小新的地图

小新的地图

题目描述

有一个 N×MN \times M 的地图,并且小新站在上面。其中 (i,j)(i, j) 表示地图的第 ii 行第 jj 列。地图被表示为 NN 个字符串 S1S2S3...S_1,S_2,S_3...,每个字符串长 MM 个字符。

地图每个格子都是冰或者岩石:若 SijS_{ij} 对应的字符为".",则代表 (i,j)(i, j) 处是冰;若 SijS_{ij} 对应的字符为 "#",则代表 (i,j)(i, j) 处是岩石。

这个地图的一周 (第 11 行、第 NN 行、第 11 列,第 MM 列) 均为岩石,小新起始所站的点 (2,2)(2,2) 恒为冰。

小新可以移动零次或任意次,每次移动需要先选定一个方向(上下左右),并且一直沿着这个方向移 动直到遇到岩石(或不是冰)。请你计算出小新可以抵达或途径的所有格点(包括滑过的)。

输入格式

第一行输入两个正整数 NNM(3n,m200)M(3 \leq n, m \leq 200),表示地图的长和宽。 接下来 NN 行,每行输入一个长为 MM 的字符串,表示地图内容(代表地图内容的字符)。 SiS_i 是长为 MM 的字符串,仅包含 "." 和 "#"。 地图的边缘都是 "#"(岩石),且 (2,2)(2,2) 处一定为 "."(冰)

输出格式

输出小新能触及的格点数。

样例

6 6 
###### 
#....# 
#.#..# 
#..#.# 
#....# 
######
12

提示

比如小新可以经过 (5,5)(5,5) 通过这样移动:

(2,2)(5,2)(5,5)(2,2)→(5,2)→(5,5)

小新也可以经过 (2,4)(2,4)

(2,2)(2,5)(2,2) → (2,5),途经 (2,4)(2,4)

但小新无法到达 (3,4)(3,4)