AT_abc311_d [ABC311D] Grid Ice Floor
Description
[problemUrl]: https://atcoder.jp/contests/abc311/tasks/abc311_d
$ N\ \times\ M $ のグリッドがあり、この上にプレイヤーがいます。
このグリッドの上から $ i $ 行目、左から $ j $ 列目をマス $ (i,j) $ と書きます。
このグリッドの各マスは 氷 か 岩 であり、その情報は $ N $ 個の長さ $ M $ の文字列 $ S_1,S_2,\dots,S_N $ として与えられます。
- もし $ S_i $ の $ j $ 文字目が `.` なら、マス $ (i,j) $ は 氷 である。
- もし $ S_i $ の $ j $ 文字目が `#` なら、マス $ (i,j) $ は 岩 である。
なお、このグリッドの外周 ( $ 1 $ 行目、 $ N $ 行目、 $ 1 $ 列目、 $ M $ 列目の全てのマス ) は 岩 です。
最初、プレイヤーはマス $ (2,2) $ の上で停止しています。このマスは 氷 です。
プレイヤーは以下の行動を $ 0 $ 度以上何度でも行うことができます。
- まず、プレイヤーは上下左右の移動方向を指定する。
- その後、プレイヤーは岩のマスにぶつかるまでその方向に移動する。厳密には以下の通りである。
- もし移動方向に隣接するマスが 氷 なら、そのマスに移動し、同じ方向に移動を継続する。
- もし移動方向に隣接するマスが 岩 なら、今いるマスに留まり、移動を終了する。
プレイヤーが触れる (通過または上で停止する) ことができる 氷 の数を求めてください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ M $ $ S_1 $ $ S_2 $ $ \vdots $ $ S_N $
Output Format
答えを整数として出力せよ。
Explanation/Hint
### 制約
- $ 3\ \le\ N,M\ \le\ 200 $
- $ S_i $ は `#` と `.` からなる長さ $ M $ の文字列
- $ i=1 $ または $ i=N $ または $ j=1 $ または $ j=M $ であるとき、マス $ (i,j) $ は 岩
- マス $ (2,2) $ は 氷
### Sample Explanation 1
例えばマス $ (5,5) $ には以下のように移動することで上で停止することができます。 - $ (2,2)\ \rightarrow\ (5,2)\ \rightarrow\ (5,5) $ 例えばマス $ (2,4) $ には以下のように移動することで通過することができます。 - $ (2,2)\ \rightarrow\ (2,5) $ の移動中に $ (2,4) $ を通過する。 例えばマス $ (3,4) $ は通過することも上で停止することもできません。