Pagini recente » Cod sursa (job #3367558) | Cod sursa (job #3367570) | Cod sursa (job #3367559) | Cod sursa (job #3367560) | Cod sursa (job #3367507)
from collections import deque
f = open("bfs.in", "r")
n,m,s = [int(x) for x in f.readline().split()]
muchii = {}
for i in range(1, n+1):
muchii[i] = []
for line in f:
x, y = [int(a) for a in line.split()]
muchii[x].append(y)
f.close()
#print(muchii)
current = deque()
current.append(s)
vazute_nivel = {}
nivel = 0
while current:
#print(current)
for i in range(len(current)):
x = current[i]
vazute_nivel[x] = nivel
#print(x, vazute_nivel[x])
for nod in muchii[x]:
if nod not in vazute_nivel and nod not in current:
current.append(nod)
nivel += 1
while current and current[0] in vazute_nivel:
current.popleft()
for i in range(1,n+1):
print(vazute_nivel.get(i, -1), end=" ")