#HX1261K. 迷宫中最短圈

提交1 通过1
通过率100%
时间限制2000ms
内存限制256MiB
    ID: 10152 传统题 2000ms 256MiB 尝试: 1 已通过: 1 难度: 普及+/提高- 上传者: 标签>编程题C++CSPCSP复赛CSP复赛专项练习暑假CSP复赛集训暑假集训1261-广搜+图搜

题目描述

题目描述

给定一个 nnmm 列的迷宫。字符“#”表示墙壁,字符“.”表示可以行走的格子,字符“S”表示起点。

你每次可以从当前格子移动到上下左右相邻的一个非墙壁格子。现在需要从起点“S”出发,沿着一条环路最终回到“S”。除了起点作为首尾位置外,同一个格子不能在环路中重复出现。

请计算经过边数最少的环路长度。如果不存在这样的环路,输出 1-1

输入格式

第一行包含两个整数 n,mn,m

接下来 nn 行,每行包含 mm 个字符,描述迷宫。地图中恰好有一个字符“S”。

输出格式

输出经过起点的最短环路长度。如果不存在环路,输出 1-1

样例

输入

4 4
....
#.#.
.S..
.##.

输出

8
4 4
....
#.#.
.S..
.##.
8
8 5
....#
....#
.....
.....
.....
.##..
..S.#
.....
4
11 4
.#..
..S.
....
#...
....
.#..
...#
#...
..#.
##..
....
4