Skip to content
Snippets Groups Projects
7569.py 929 B
Newer Older
Mingi Jung's avatar
Mingi Jung committed
import sys
from collections import deque
input = sys.stdin.readline

queue = deque()
cnt = 0
dx, dy, dz = [-1, 1, 0, 0, 0, 0], [0, 0, -1, 1, 0, 0], [0, 0, 0, 0, -1, 1]

M, N, H = map(int, input().split())
graph = [[[*map(int, input().split())] for _ in range(N)] for _ in range(H)]

def bfs():
    while queue:
        z, x, y = queue.popleft()
        for i in range(6):
            nx, ny, nz = x+dx[i], y+dy[i], z+dz[i]
            if -1 < nx < N and -1 < ny < M and -1 < nz < H and graph[nz][nx][ny] == 0:
                graph[nz][nx][ny] = graph[z][x][y] + 1
                queue.append((nz, nx, ny))

for i in range(H):
    for j in range(N):
        for k in range(M):
            if graph[i][j][k] == 1:
                queue.append((i, j, k))

bfs()

for i in graph:
    for j in i:
        for k in j:
            if k == 0:
                print(-1)
                exit(0)
            cnt = max(cnt, k)
print(cnt-1)