atcoder#ABC253B. [ABC253B] Distance Between Tokens

[ABC253B] Distance Between Tokens

配点 : 200200

問題文

HHWW 列のマス目があり、そのうち二つの異なるマスに駒が置かれています。

マス目の状態は HH 個の長さ WW の文字列 S1,,SHS_1, \dots, S_H で表されます。Si,j=S_{i, j} = o ならば ii 行目 jj 列目のマスに駒が置かれていることを、Si,j=S_{i, j} = - ならばそのマスには駒が置かれていないことを表します。なお、Si,jS_{i, j} は文字列 SiS_ijj 文字目を指します。

一方の駒をマス目の外側に出ないように上下左右の隣接するマスに動かすことを繰り返すとき、もう一方の駒と同じマスに移動させるためには最小で何回動かす必要がありますか?

制約

  • 2H,W1002 \leq H, W \leq 100
  • H,WH, W は整数
  • Si(1iH)S_i \, (1 \leq i \leq H)o および - のみからなる長さ WW の文字列
  • Si,j=S_{i, j} = o となる整数 1iH,1jW1 \leq i \leq H, 1 \leq j \leq W の組がちょうど二つ存在する

入力

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

HH WW

S1S_1

\vdots

SHS_H

出力

答えを出力せよ。

2 3
--o
o--
3

11 行目 33 列目に置かれている駒を 下 \rightarrow\rightarrow 左 と移動すると 33 回でもう一方の駒と同じマスに移動させることができます。22 回以下で移動させることはできないので、33 を出力します。

5 4
-o--
----
----
----
-o--
4