#812
Silver I
미로 최단 거리
시간 제한
1s
메모리 제한
512MB
제출
11
정답
3
맞힌 사람
3
정답 비율
27.3%

문제

당신은 N×MN \times M 크기의 격자판 모양의 미로에 갇혀 있다. 격자의 각 칸은 빈 공간(0) 또는 벽(1)으로 이루어져 있다. 당신은 빈 공간에서 상하좌우로 인접한 빈 공간으로 이동할 수 있다. 한 번 이동하는 데에는 1초가 소요된다.

미로를 탈출하기 위해서는 격자판의 외곽에 위치한 빈 공간 중 한 곳에 도달해야 한다. 격자의 외곽이란 11행, NN행, 11열, 또는 MM열에 속한 칸들을 의미한다.

여러 개의 쿼리가 주어질 때, 각 쿼리에서 지정한 위치 (r,c)(r, c)에서 시작하여 미로를 탈출하기 위해 필요한 최소 시간을 구하는 프로그램을 작성하시오. 만약 시작 위치가 이미 외곽이라면 탈출 시간은 00이며, 어떤 방법을 써도 외곽에 도달할 수 없다면 1-1을 출력한다.

입력

첫째 줄에 격자의 세로 크기 NN과 가로 크기 MM이 공백으로 구분되어 주어진다. (1N,M5001 \le N, M \le 500)

둘째 줄부터 NN개의 줄에 걸쳐 격자의 상태가 주어진다. 각 줄에는 MM개의 정수가 공백으로 구분되어 주어지며, 0은 빈 공간, 1은 벽을 의미한다.

그다음 줄에는 쿼리의 개수 QQ가 주어진다. (1Q100,0001 \le Q \le 100,000)

이어서 QQ개의 줄에 걸쳐 각 쿼리를 나타내는 두 정수 r,cr, c가 주어진다. 이는 당신의 시작 위치가 rrcc열임을 의미한다. (1rN,1cM1 \le r \le N, 1 \le c \le M)

출력

각 쿼리에 대해, 해당 위치에서 외곽의 빈 공간으로 이동하기 위한 최소 시간을 한 줄에 하나씩 출력한다. 시작 위치가 벽이거나 외곽으로 나갈 수 없는 경우 -1을 출력한다.


예제 입력 1

3 4
1 0 1 1
1 0 0 1
1 1 0 1
4
1 2
2 2
2 3
3 3

예제 출력 1

0
1
1
0

예제 입력 2

5 5
1 1 1 1 1
1 0 0 0 1
1 0 1 0 1
1 0 0 0 1
1 1 1 1 1
1
2 2

예제 출력 2

-1
문제를 만든 사람
안우진
알고리즘 분류
코드 제출

코드를 제출하려면 로그인이 필요합니다.

로그인
내 제출
제출 내역이 없습니다.
맞은 사람
#순위사용자언어시간메모리코드 길이
8527🥇
정민용
PyPy83ms65464KB1142B
5577🥈
조서현
Python197ms14008KB895B
5595🥉
김우솔
Python245ms16108KB1089B
난이도 투표
Silver I1명 투표· 약 1개월 전
로그인 후 AC 받으면 투표할 수 있습니다.
전체 제출
#사용자문제결과언어시간메모리코드 길이제출 시간
8527
맞았습니다
PyPy83ms65464KB1142B2026. 05. 29. 05:01
8526
런타임 에러
PyPy--1142B2026. 05. 29. 04:59
8525
시간 초과
PyPy--1208B2026. 05. 29. 04:50
8524
시간 초과
PyPy--1078B2026. 05. 29. 04:41
5595
맞았습니다
Python245ms16108KB1089B2026. 04. 27. 06:52
5594
틀렸습니다
Python--1003B2026. 04. 27. 06:39
5593
틀렸습니다
Python--981B2026. 04. 27. 06:37
5592
틀렸습니다
Python--1041B2026. 04. 27. 06:36
5591
시간 초과
Python--894B2026. 04. 27. 06:08
5577
맞았습니다
Python197ms14008KB895B2026. 04. 27. 03:59
5576
틀렸습니다
Python--923B2026. 04. 27. 03:58