3차원 격자 상태 전파


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

H×M×N 크기의 3차원 격자에서, 각 칸의 상태는 익음(1), 안 익음(0), 빈 칸(-1)이다.

익은 칸은 매 시간 단위마다 상하좌우·앞뒤 6방향으로 인접한 안 익은 칸을 익힌다.

모든 안 익은 칸이 익는 데 필요한 최소 시간을 출력하라.

끝내 익지 못하는 칸이 있으면 -1을 출력한다.

입력 설명

첫 줄에는 격자의 가로 크기 M, 세로 크기 N, 층 수 H가 주어진다.

단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, 1 ≤ H ≤ 100 이다.

둘째 줄부터는 아래층부터 위층 순서로 각 층의 상태가 주어진다. 각 층은 N줄로 이루어지며, 각 줄에는 M개의 정수가 주어진다.

정수 1은 익은 칸, 정수 0은 안 익은 칸, 정수 -1은 빈 칸을 나타낸다.

이러한 N개의 줄이 H번 반복된다.

안 익은 칸이 하나 이상 존재하는 경우만 입력으로 주어진다.

출력 설명

모든 안 익은 칸이 익는 데 필요한 최소 시간을 출력한다.

처음부터 모든 칸이 이미 익어있으면 0을 출력하고, 끝내 익지 못하는 칸이 남으면 -1을 출력한다.

예제 입력 1

5 3 1
0 -1 0 0 0
-1 -1 0 1 1
0 0 0 1 1

예제 출력 1

-1

예제 입력 2

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

예제 출력 2

4

예제 입력 3

4 3 2
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
-1 -1 -1 -1
1 1 1 -1

예제 출력 3

0

댓글

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