Pagini recente » Cod sursa (job #1606088) | Cod sursa (job #1957993) | Cod sursa (job #1615427) | Cod sursa (job #3207211) | Cod sursa (job #2791682)
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")