Pagini recente » Cod sursa (job #2786714) | Profil M@2Te4i | Cod sursa (job #1444169) | Cod sursa (job #766375) | Cod sursa (job #2449066)
#!/usr/bin/env python3
import collections, sys
sys.stdout = open('bfs.out', 'w')
with open('bfs.in', 'r') as fin:
readInts = lambda: tuple(map(int, fin.readline().split()))
N, M, S = readInts()
edges = [[] for _ in range(N + 1)]
dist = [-1 for _ in range(N + 1)]
for _ in range(M):
s, t = readInts()
edges[s].append(t)
dist[S], dq = 0, collections.deque([S])
while dq:
n = dq.popleft()
for t in edges[n]:
if dist[t] < 0:
dist[t] = dist[n] + 1
dq.append(t)
print(' '.join(map(str, dist)))