[AGC004E] Salvage Robots

题意翻译

有一个棋盘,上面要么是空的,要么有一个机器人,要么是一个出口(整个地图只有一个出口)。每次可以命令所有机器人向上下左右中的某个方向移动一格,如果它超出了棋盘的边界就会消失。如果它到了出口的位置就会被你救下(并且从棋盘上消失)。求你能够救下的机器人的最大值。 Translated by @加藤圣教_封仙

题目描述

[problemUrl]: https://atcoder.jp/contests/agc004/tasks/agc004_e 縦 $ H $ 行、横 $ W $ 列のマス目があります。 上から $ i $ ($ 1\ <\ =i\ <\ =H $) 行目、左から $ j $ ($ 1\ <\ =j\ <\ =W $) 列目のマスの情報は、文字 $ a_{ij} $ によって次のように表されます。 - `.` : 空きマスである。 - `o` : ロボットが $ 1 $ 個置かれたマスである。 - `E` : 出口のあるマスである。 `E` はマス目全体にちょうど $ 1 $ 個含まれる。 高橋君は次の操作を何回か行い、できるだけ多くのロボットを救出しようとしています。 - 上下左右のうちどれかひとつの向きを選び、すべてのロボットをその向きへ 1 マスだけ移動させる。 このとき、出口のあるマスへ移動したロボットは直ちに救出され、マス目から消える。 また、マス目の外へ移動したロボットは直ちに爆発し、マス目から消える。 高橋君が救出できるロボットの個数の最大値を求めてください。

输入输出格式

输入格式


入力は以下の形式で標準入力から与えられる。 > $ H $ $ W $ $ a_{11} $$ ... $$ a_{1W} $ $ : $ $ a_{H1} $$ ... $$ a_{HW} $

输出格式


高橋君が救出できるロボットの個数の最大値を出力せよ。

输入输出样例

输入样例 #1

3 3
o.o
.Eo
ooo

输出样例 #1

3

输入样例 #2

2 2
E.
..

输出样例 #2

0

输入样例 #3

3 4
o...
o...
oooE

输出样例 #3

5

输入样例 #4

5 11
ooo.ooo.ooo
o.o.o...o..
ooo.oE..o..
o.o.o.o.o..
o.o.ooo.ooo

输出样例 #4

12

说明

### 制約 - $ 2\ <\ =H,W\ <\ =100 $ - $ a_{ij} $ は `.`,`o`,`E` のどれかである。 - `E` はマス目全体にちょうど $ 1 $ 個含まれる。 ### Sample Explanation 1 例えば、左、上、右の順にロボットを移動させればよいです。 ### Sample Explanation 3 右、右、右、下、下の順にロボットを移動させればよいです。