Pagini recente » Cod sursa (job #2785597) | Cod sursa (job #1214242) | Cod sursa (job #1962358) | Cod sursa (job #387495) | Cod sursa (job #2637029)
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)