Cod sursa(job #3367506)

Utilizator mateivoican2006@gmail.comVoican Matei [email protected] Data 8 octombrie 2026 13:28:48
Problema BFS - Parcurgere in latime Scor 0
Compilator py Status done
Runda Arhiva educationala Marime 0.77 kb
from collections import deque

f = open("bfs.in", "r")
n,m,s = [int(x) for x in f.readline().split()]
muchii = {}
for i in range(1, n+1):
    muchii[i] = []
for line in f:
    x, y = [int(a) for a in line.split()]
    muchii[x].append(y)
f.close()
#print(muchii)

current = deque()
current.append(s)
vazute_nivel = {}
nivel = 0
while current:
    #print(current)
    for i in range(len(current)):
        x = current[i]
        vazute_nivel[x] = nivel
        #print(x, vazute_nivel[x])
        for nod in muchii[x]:
            if nod not in vazute_nivel:
              current.append(nod)
    nivel += 1
    while current and current[0] in vazute_nivel:
        current.popleft()
for i in range(1,n+1):
    print(vazute_nivel.get(i, -1), end=" ")