#AT2182. B - Distance Between Tokens

B - Distance Between Tokens

当前没有测试数据。

B - 令牌之间的距离

得分:$200$ 分

题目描述

有一个大小为 $H$ 的网格,网格有 $W$ 个竖直列,其中两个不同的方块上面有一个棋子。

方块的状态由 $H$ 个长度为 $W$ 的字符串 $S_1, \dots, S_H$ 表示。如果格子在第 $i$ 行(自上而下数)第 $j$ 列(自左而右数)有棋子,那么 $S_{i, j} = $ o;如果格子上没有棋子,那么 $S_{i, j} = $ -。这里,$S_{i, j}$ 表示字符串 $S_i$ 的第 $j$ 个字符。

考虑如何将其中一个棋子移动到另一个棋子所在的格子,在移动棋子时,不允许将棋子移出网格。至少需要多少步才能将棋子移动到另一个棋子所在的格子上?

约束

  • $2 \leq H, W \leq 100$
  • $H$ 和 $W$ 为整数。
  • $S_i \, (1 \leq i \leq H)$ 是长度为 $W$ 的字符串,字符串由字符 o- 构成。
  • 存在正好两个整数对 $1 \leq i \leq H, 1 \leq j \leq W$ 使得 $S_{i, j} = $ o

输入

从标准输入读入数据,数据格式如下:

HH WW

S1S_1

\vdots

SHS_H

输出

输出结果。


2 3
--o
o--
3

位于第 $1$ 行(自上而下数)第 $3$ 列(自左而右数)的棋子需要 $3$ 步才能到达另一个棋子所在的格子:向下,向左,向左。由于无法在两步或更少的步数内完成,应输出 $3$。


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