Pagini recente » Cod sursa (job #3312473) | Cod sursa (job #2881431) | Cod sursa (job #3331022) | Cod sursa (job #3330066) | Cod sursa (job #3316322)
from collections import deque
def bfs(listaAdiacenta, nodStart):
queue = deque([nodStart])
noduriVizitate = {nodStart}
distanta = {nodStart: 0}
while queue:
nodCurent = queue.popleft()
for v in listaAdiacenta[nodCurent]:
if v not in noduriVizitate:
noduriVizitate.add(v)
queue.append(v)
distanta[v] = distanta[nodCurent] + 1
return distanta
with open("bfs.in", "r") as f:
linie = f.readline()
n,m,s = map(int, linie.split())
listaAdiacenta = dict((_, []) for _ in range(1,n+1))
for _ in range(m):
linie = f.readline()
a,b = map(int, linie.split())
listaAdiacenta[a].append(b)
d = bfs(listaAdiacenta, s)
with open("bfs.out", "w") as f:
for i in range(1,n+1):
if i not in d.keys():
f.write("-1 ")
else:
f.write(f"{d[i]} ")