#abc253b. [abc253_b]Distance Between Tokens

[abc253_b]Distance Between Tokens

题目描述

有一个 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_i 的第 jj 个字符。

考虑重复地将一个棋子移动到其四个相邻方格之一。不允许将棋子移出网格。最少需要多少次移动才能使棋子到达另一个棋子所在的方格?

约束条件

  • 2H,W1002 \leq H, W \leq 100
  • HHWW 是整数。
  • Si(1iH)S_i \, (1 \leq i \leq H) 是长度为 WW 的字符串,由 o- 组成。
  • 存在恰好两对整数 1iH,1jW1 \leq i \leq H, 1 \leq j \leq W,使得 Si,j=S_{i, j} = o

输入格式

输入以标准输入形式给出,格式如下:

HH WW S1S_1 \vdots SHS_H

输出格式

输出答案。


示例输入 1

2 3
--o
o--

示例输出 1

3

从从上往下数第 11 行、从左往右数第 33 列的棋子需要经过 33 次移动才能到达另一个棋子所在的方格:向下、向左、向左。由于不可能在两次或更少的移动中做到,因此应输出 33


示例输入 2

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

示例输出 2

4