Cod sursa(job #3316322)

Utilizator eva.gavriliuGavriliu Eva Mihaela eva.gavriliu Data 18 octombrie 2025 13:19:16
Problema BFS - Parcurgere in latime Scor 0
Compilator py Status done
Runda Arhiva educationala Marime 0.93 kb
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]} ")