100 atcoder#AGC004E. [AGC004E] Salvage Robots

[AGC004E] Salvage Robots

题目描述

H H 行、横 W W 列のマス目があります。 上から i i (1 < =i < =H 1\ <\ =i\ <\ =H ) 行目、左から j j (1 < =j < =W 1\ <\ =j\ <\ =W ) 列目のマスの情報は、文字 aij a_{ij} によって次のように表されます。

  • . : 空きマスである。
  • o : ロボットが 1 1 個置かれたマスである。
  • E : 出口のあるマスである。 E はマス目全体にちょうど 1 1 個含まれる。

高橋君は次の操作を何回か行い、できるだけ多くのロボットを救出しようとしています。

  • 上下左右のうちどれかひとつの向きを選び、すべてのロボットをその向きへ 1 マスだけ移動させる。 このとき、出口のあるマスへ移動したロボットは直ちに救出され、マス目から消える。 また、マス目の外へ移動したロボットは直ちに爆発し、マス目から消える。

高橋君が救出できるロボットの個数の最大値を求めてください。

输入格式

入力は以下の形式で標準入力から与えられる。

H H W W a11 a_{11} ... ... a1W a_{1W} : : aH1 a_{H1} ... ... aHW a_{HW}

输出格式

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

题目大意

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

Translated by @加藤圣教_封仙

3 3
o.o
.Eo
ooo
3
2 2
E.
..
0
3 4
o...
o...
oooE
5
5 11
ooo.ooo.ooo
o.o.o...o..
ooo.oE..o..
o.o.o.o.o..
o.o.ooo.ooo
12

提示

制約

  • 2 < =HW < =100 2\ <\ =H,W\ <\ =100
  • aij a_{ij} .oE のどれかである。
  • E はマス目全体にちょうど 1 1 個含まれる。

Sample Explanation 1

例えば、左、上、右の順にロボットを移動させればよいです。

Sample Explanation 3

右、右、右、下、下の順にロボットを移動させればよいです。