Pagini recente » Cod sursa (job #3310664) | Cod sursa (job #3330519) | Cod sursa (job #746091) | Cod sursa (job #819727) | Cod sursa (job #3321530)
def lista_graf(mod="neorientat", fisier="graf.in"):
with open(fisier) as fin:
#citire nr de noduri (ignora restu liniei)
n = int(fin.readline().split()[0])
#construire lista de liste cu goale
la = [ [] for _ in range(n)]
#construire listă propriu-zis
for line in fin:
x,y = [int(x) for x in line.split()]
la[x-1].append(y)
if mod!="orientat":
la[y-1].append(x)
return la
from collections import deque
def distanta_din_n():
with open("bfs.in") as fin:
nr_n, _, nod_initial = map (int, fin.readline().split() )
la = lista_graf("orientat", fisier="bfs.in")
distante = [-1 for i in range(nr_n)]
distante[nod_initial-1] = 0
queue = deque()
queue.append(nod_initial)
while(len(queue) != 0): #cât timp coada nu e goală
nod_curent = queue.popleft()
for x in la[nod_curent-1]: #adaugă în coadă vecinii nevizitați
if distante[x-1] == -1:
queue.append(x)
distante[x-1] = distante[nod_curent-1] + 1
print(distante)
distanta_din_n()