页面无法加载?点击这里可能会修复。
Placeholder

#8522
子任务

타조 1s 32MB

问题

여러분은 가장 강력한 동물이 무엇이라고 생각하는가?

아마도 기린을 떠올릴 것 같다.

하지만 "타조" 가 더 강력할지도 모른다.

타조는 엄청나게 빠른 달리기를 갖고 있기 때문이다.

타조는 너무나도 빠른 나머지 한 번 달리면 방향을 바꿀 수조차 없다.

기린은 타조에게 지는 것이 싫어 타조를 미로에 가둬버렸다.

미로는 NM열로 이루어져 있고, 각 칸은 비어있거나 벽으로 막혀 있다.

타조는 1행 1열에서 출발해 오른쪽으로 달려가는 중이다.

타조는 한 번 달리기 시작하면 벽에 부딪힌 후에야 간신히 멈출 수 있다.

강력함의 상징인 달리기를 하지 않는 것은 말이 안되기 때문에, 멈춘 뒤에는 상하좌우 중 한 방향을 골라 다시 바로 달리기를 시작할 것이다.

타조는 계속 오른쪽으로 달려가 기린을 혼내줄 것이다.

부딪히면 너무 아프기 때문에 타조는 미로의 오른쪽으로 탈출하는 방법 중, 벽에 가장 덜 부딪히는 방법을 찾고 싶다.

미로에서 표시되지 않은 바깥에는 벽이 존재하지 않는다.

만약 왼쪽이나 위, 아래로 탈출하게 되면 타조는 자신이 졌다고 생각해 슬퍼할 것이다.


输入

첫 줄에 N (3 \le N \le 100)M (3 \le M \le 100)이 주어진다.

이후 NM열의 미로를 나타내는 문자가 주어진다.

' . ' 문자는 빈 칸을, ' # ' 문자는 벽을 나타낸다.

1행 1열은 언제나 빈 칸이다.


输出

미로의 오른쪽으로 탈출하는 방법 중, 벽에 가장 덜 부딪히는 방법의 충돌 횟수를 출력하라.

만약, 이 방식대로 미로의 오른쪽으로 탈출할 수 없을 경우 -1을 출력하라.

(이때는 타조가 화가 많이 나서 벽을 부수고 기린을 혼내줄 것이다.)


子任务

编号 分数 条件
#140分

3 \le N, M \le 15

#230分

3 \le N, M \le 30

#330分

3 \le N, M \le 100


示例 #1

6 10
.........#
########.#
#........#
#.########
#.........
##########
4

示例 #2

5 5
....#
#.#..
#....
.#..#
##.##
4

示例 #3

3 3
.#.
...
...
-1


来源

Swedish Olympiad in Informatics 2015 예선
需要登录才能编写代码。