atcoder#ABC253B. [ABC253B] Distance Between Tokens

[ABC253B] Distance Between Tokens

题目描述

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

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

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

输入格式

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

H H W W S1 S_1 \vdots SH S_H

输出格式

答えを出力せよ。

题目大意

题目描述

给定一张 hhww 列的棋盘。棋盘上有两枚棋子,它们的位置在棋盘中用o表示。棋盘中的空格子用-表示。

一枚棋子可以向它所在格子的上下左右四个相邻的格子中移动(不能出格),称为走一步。请计算其中一枚棋子到达另一枚棋子的位置最少需要多少步。

输入格式

第一行输入两个整数 h,wh,w

接下来输入一个 hhww 列,仅由两个o和若干个-组成的字符方阵。

输出格式

一行一个整数,答案。

说明/提示

样例 #1 说明

右上方的棋子走“下、左、左”三步即可到达左下方棋子的位置。

数据规模与约定

对于全部测试点,数据保证:

  • 2h,w1002 \le h,w \le 100
  • 棋盘中有且仅有两枚棋子。
2 3
--o
o--
3
5 4
-o--
----
----
----
-o--
4

提示

制約

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

Sample Explanation 1

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