#ATarc074d. [ARC074F] Lotus Leaves
[ARC074F] Lotus Leaves
题目描述
有一个长方形的池塘。池塘被分割为高 行、宽 列的网格。从上往下第 行,从左往右第 列的格子可以表示为 。
池塘中的某些格子上漂浮着莲叶。某只青蛙正站在编号为 的叶子上,准备移动到另一个编号为 的叶子。每个格子 的信息由字符 表示:
.:该格子上没有莲叶。o:该格子上有一片莲叶。S:该格子上有编号为 的莲叶。T:该格子上有编号为 的莲叶。
青蛙可以不断进行如下操作:“跳到当前所在叶子同一行或同一列上漂浮的另一个叶子上”。青蛙希望移动到叶 。
すぬけ君的目标是,提前移除若干(可以为零)片叶子(不能移除 和 ),使得青蛙无法从 移动到 。请判断能否实现该目标。如果可以,请输出最少需要移除的叶子数量。如果不能实现,请输出 。
输入格式
输入为如下格式,从标准输入读入。
输出格式
如果目标可以实现,输出最少需要移除的叶子的数量。否则,请输出 。
样例 1
输入
3 3
S.o
.o.
o.T
输出
2
样例 2
输入
3 4
S...
.oo.
...T
输出
0
样例 3
输入
4 3
.S.
.o.
.o.
.T.
输出
-1
样例 4
输入
10 10
.o...o..o.
....o.....
....oo.oo.
..oooo..o.
....oo....
..o..o....
o..o....So
o....T....
....o.....
........oo
输出
5
说明/提示
限制
- 只会是
.,o,S,T之一。 - 所有 中恰好有一个
S。 - 所有 中恰好有一个
T。
样例解释 1
只需移除右上和左下的两片叶子即可。
由 ChatGPT 5 翻译