[未解決の問題]伯俊7576
本当に簡単な問題だが、そんなに簡単だとは思わなかった.上記の場合、最短距離を探す問題であるため、基本的にはbfsを用い、開始点が2つ以上であれば、開始点をドキュメンタリーに入れるだけでよい.
プログラムを閉じるには、
プログラムを閉じるには、
exit(0)
を使用します.from collections import deque
m, n = map(int, input().split())
graph = []
for _ in range(n):
graph.append(list(map(int, input().split())))
mx = [1, -1, 0 ,0]
my = [0, 0, 1, -1]
queue = deque()
for i in range(n):
for j in range(m):
if graph[i][j] == 1:
queue.append([i, j])
maxi = 1
while queue:
x, y = queue.popleft()
maxi = max(maxi, graph[x][y])
for i in range(4):
nx = x + mx[i]
ny = y + my[i]
if 0 <= nx < n and 0 <= ny < m:
if graph[nx][ny] == 0:
graph[nx][ny] = graph[x][y] + 1
queue.append([nx, ny])
zero = False
for i in range(n):
if 0 in graph[i]:
print(-1)
exit(0)
print(maxi-1)
Reference
この問題について([未解決の問題]伯俊7576), 我々は、より多くの情報をここで見つけました https://velog.io/@junseo/못-푼-문제-백준-7576テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol