Cod sursa(job #2637029)

Utilizator Tuddi666Blidea Tudorel Alexandru Tuddi666 Data 20 iulie 2020 22:35:34
Problema BFS - Parcurgere in latime Scor 20
Compilator py Status done
Runda Arhiva educationala Marime 1.07 kb
def BFS (N, NodSursa, ListaAdiacenta):
    vizitate = [0]*(N+1)
    lungime = [-1]*(N+1)
    count = 0
    coada = [NodSursa]
    lungime[NodSursa] = count
    vizitate[NodSursa] = 1
    count += 1
    startCoada = 0;
    while len(coada) > startCoada:
        v = coada[startCoada]
        startCoada += 1
        ok = False
        for elemente in ListaAdiacenta[v]:
            w = elemente
            if vizitate[w] == 0:
                vizitate[w] = 1
                ok = True
                lungime[w] = count
                coada.append(w)
        if ok == True:
            ok = False
            count += 1
    scrie = open("bfs.out", "w")
    for i in range(1, N+1):
        scrie.write(str(lungime[i]) + " ")
    scrie.close()
pass

if __name__ == "__main__":
    inn = open("bfs.in","r")
    n, m, nSursa = map(int, inn.readline().split())
    ListaAdiacenta = []
    for i in range(n+1):
        ListaAdiacenta.append([])
    for i in range(m):
        u,v = map(int, inn.readline().split())
        ListaAdiacenta[u].append(v)
    inn.close()
    BFS(n, nSursa, ListaAdiacenta)