Pagini recente » Cod sursa (job #1791787) | Istoria paginii runda/dik | Cod sursa (job #1598869) | Cod sursa (job #1004677) | Cod sursa (job #2925564)
import queue
def BFS(start, adj, vizited, distance):
q = queue.Queue()
q.put(start)
vizited[start] = True
distance[start] = 0
while not q.empty():
currNode = q.get()
for x in adj[currNode]:
if not vizited[x]:
q.put(x)
vizited[x] = True
distance[x] = distance[currNode] + 1
return distance
with open("bfs.in") as f:
n, m, start = map(int, f.readline().split())
adj = [[] for _ in range(n+1)]
vizited = [False] * (n+1)
distance = [-1] * (n+1)
for line in f:
u, v = map(int, line.split())
adj[u].append(v)
with open("bfs.out", 'w') as f:
f.write(" ".join(BFS(start, adj, vizited, distance)[1:]))