6033: 逃出城堡 II
[Creator : ]
Description
小周周被困在一个城堡中,城堡可以看成一个大小为 $n*n$ 的二维平面上的网格图,每一个格子要么为平地,要么为墙壁,要么为毒区。
这次作为毒区的格子,每一秒会向他周围的上下左右四个格子扩散毒气,毒气不能穿过墙壁。
最开始小周周在某一个平地上,他每一秒可以向他上下左右四个格子中的作为平地的格子移动一步,他想知道如果不能穿越墙壁,也不能接触有毒气的格子,他最少需要多长时间才能逃出城堡,只要从任何一个边缘走出城堡都算逃出城堡。
如图所示的数据中,只要小周周先向右移动两步,再向下移动两步,即可逃出城,所以答案为 $4$。
这次作为毒区的格子,每一秒会向他周围的上下左右四个格子扩散毒气,毒气不能穿过墙壁。
最开始小周周在某一个平地上,他每一秒可以向他上下左右四个格子中的作为平地的格子移动一步,他想知道如果不能穿越墙壁,也不能接触有毒气的格子,他最少需要多长时间才能逃出城堡,只要从任何一个边缘走出城堡都算逃出城堡。
如图所示的数据中,只要小周周先向右移动两步,再向下移动两步,即可逃出城,所以答案为 $4$。
Input
第一行:一个整数 $n\ (1 \leq n \leq 1,000)$,表示城堡的大小是一个 $n*n$ 的网格图。
第 $2 \sim n+1$ 行:每一行有 $n$ 个字符,'.' 表示平地,'*' 表示有毒气的格子,'#' 表示墙壁,'S' 表示小周周最开始的位置。
第 $2 \sim n+1$ 行:每一行有 $n$ 个字符,'.' 表示平地,'*' 表示有毒气的格子,'#' 表示墙壁,'S' 表示小周周最开始的位置。
Output
输出一个整数表示答案,如果小周周不能逃出城堡则输出 "IMPOSSIBLE"(不带引号)。
Sample 1 Input
5
.*...
....#
.*..#
#S..#
.##.#
Sample 1 Output
4
Sample 2 Input
5
.....
....#
.*.*#
#S..#
.##.#
Sample 2 Output
IMPOSSIBLE