Cod sursa(job #3368092)

Utilizator mitoceanuci@gmail.comMitoceanu Ciprian [email protected] Data 13 octombrie 2026 11:01:34
Problema BFS - Parcurgere in latime Scor 0
Compilator py Status done
Runda Arhiva educationala Marime 0.99 kb
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, s, 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")