Cod sursa(job #2791682)

Utilizator NSA-16Neacsu-Tranciuc Sasa-Andrei NSA-16 Data 30 octombrie 2021 22:08:34
Problema BFS - Parcurgere in latime Scor 80
Compilator py Status done
Runda Arhiva educationala Marime 0.66 kb
import queue
def BFS(file, file2):
    f = open(file, "r")
    g = open(file2, "w")
    n, m, s = [int(n) for n in f.readline().split()]
    d = {}
    for i in range(1, n+1):
        d[i] = []
    for i in range(m):
        n1, n2 = [int(n) for n in f.readline().split()]
        d[n1].append(n2)
    q = queue.Queue()
    q.put(s)
    r = (n+1)*[-1]
    r[s] = 0
    v = (n+1)*[False]
    v[s] = True
    while not q.empty():
        n = q.get()
        for i in d[n]:
            if v[i] is False:
                q.put(i)
                v[i] = True
                r[i] = r[n] + 1
    g.write(" ".join(str(n) for n in r[1:]))
BFS("bfs.in", "bfs.out")