[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
右、右、右、下、下の順にロボットを移動させればよいです。