#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
。
输入
从标准输入读入数据,数据格式如下:
输出
输出结果。
2 3
--o
o--
3
位于第 $1$ 行(自上而下数)第 $3$ 列(自左而右数)的棋子需要 $3$ 步才能到达另一个棋子所在的格子:向下,向左,向左。由于无法在两步或更少的步数内完成,应输出 $3$。
5 4
-o--
----
----
----
-o--
4