100 atcoder#AGC004E. [AGC004E] Salvage Robots

[AGC004E] Salvage Robots

配点 : 14001400

問題文

HH 行、横 WW 列のマス目があります。 上から ii (1iH1 \leq i \leq H) 行目、左から jj (1jW1 \leq j \leq W) 列目のマスの情報は、文字 aija_{ij} によって次のように表されます。

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

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

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

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

制約

  • 2H,W1002 \leq H,W \leq 100
  • aija_{ij}.oE のどれかである。
  • E はマス目全体にちょうど 11 個含まれる。

入力

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

HH WW

a11a_{11}......a1Wa_{1W}

::

aH1a_{H1}......aHWa_{HW}

出力

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

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