벽 한 번 제거 최단 경로


문제 정보
check포인트 : 1 (부분 점수)
schedule시간 제한 : 2.0s
storage메모리 제한 : 192M
edit_square출제자:
 
답안 제출

N×M 격자에서 (1,1)을 출발해 (N,M)에 도달하는 최단 경로를 구하라.

0인 칸은 이동 가능하고 1인 칸은 벽이다.

경로 중 단 한 번에 한하여 벽 칸을 통과할 수 있다.

최단 경로의 칸 수를 출력하고, 도달이 불가능하면 -1을 출력하라.

입력 설명

첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 1,000)이 주어진다.

다음 N개의 줄에 M개의 숫자로 맵이 주어진다.

(1, 1)과 (N, M)은 항상 0이라고 가정하자.

출력 설명

첫째 줄에 최단 거리를 출력한다. 불가능할 때는 -1을 출력한다.

예제 입력 1

6 4
0100
1110
1000
0000
0111
0000

예제 출력 1

15

예제 입력 2

4 4
0111
1111
1111
1110

예제 출력 2

-1

댓글

현재 작성된 댓글이 없습니다.