Cod sursa(job #2925564)

Utilizator RaduAntoneoAntonio Alexandru Radu RaduAntoneo Data 15 octombrie 2022 18:17:38
Problema BFS - Parcurgere in latime Scor 0
Compilator py Status done
Runda Arhiva educationala Marime 0.65 kb
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:]))