#1219. Synchronized Players
Synchronized Players
题目描述
有一个 行 列的网格,每个格子要么是空地,要么是有障碍物的格子。网格中第 行第 列的格子记作 。
此外,有 名玩家分别站在两个不同的空地上。每个格子的情况通过 个长度为 的字符串 给出,具体如下:
- 如果 的第 个字符是
P
,则 是空地,并且有一名玩家在此。 - 如果 的第 个字符是
.
,则 是空地,但没有玩家。 - 如果 的第 个字符是
#
,则 是有障碍物的格子。
请你求出,为了让两名玩家通过以下操作反复移动最终汇合到同一个格子,所需的最小操作次数。如果无论如何都无法让两名玩家汇合,则输出 。
每次操作如下:
- 选择一个方向(上、下、左、右)后,两名玩家都尝试向该方向移动一格。如果移动后的格子存在且是空地,则玩家移动过去,否则原地不动。
输入格式
输入按以下格式从标准输入读入。
输出格式
请输出答案。
输入输出样例 #1
输入 #1
5
....#
#..#.
.P...
..P..
....#
输出 #1
3
输入输出样例 #2
输入 #2
2
P#
#P
输出 #2
-1
输入输出样例 #3
输入 #3
10
..........
..........
..........
..........
....P.....
.....P....
..........
..........
..........
..........
输出 #3
10
说明/提示
限制条件
- 是 到 之间的整数。
- 是由
P
、.
、#
组成的长度为 的字符串。 - 所有 的字符中,
P
出现的格子恰好有 个。
样例解释 1
假设最开始在 的玩家为玩家 ,在 的玩家为玩家 。例如,可以按如下方式用 次操作让两名玩家汇合:
- 选择左方向。玩家 移动到 ,玩家 移动到 。
- 选择上方向。玩家 不动,玩家 移动到 。
- 选择左方向。玩家 不动,玩家 移动到 。
由 ChatGPT 4.1 翻译