from collections import deque
def citireDate():
with open("bfs.in") as f:
date = f.read().split()
n = int(date[0])
m = int(date[1])
s = int(date[2])
graf = [[] for i in range (n + 1)]
indexCurent = 3
for i in range(m):
x = int(date[indexCurent])
y = int(date[indexCurent + 1])
graf[x].append(y)
indexCurent += 2
return n, m, graf
def bfs(nod_start, n, graf):
distante = [-1] * (n + 1)
distante[nod_start] = 0
coada = deque([nod_start])
while coada:
nod = coada.popleft()
for vecin in graf[nod]:
if distante[vecin] == -1:
distante[vecin] = distante[nod] + 1
coada.append(vecin)
return distante
n, m, s, graf = citireDate()
distante = bfs(s,n,graf)
with open("bfs.out", "w") as f:
rezultat = " ".join(map(str, distante[1:]))
f.write(rezultat+"\n")