Cod sursa(job #2937102)

Utilizator marinee.anca17@yahoo.comChiricuta Marina Anca [email protected] Data 9 noiembrie 2022 21:50:39
Problema Componente tare conexe Scor 0
Compilator py Status done
Runda Arhiva educationala Marime 0.92 kb
from typing import List

def distantePuncteControl(nr_noduri: int, muchii: List[List[int]], puncteDeControl: List[int]) -> List[List[int]]:
  vizitate = [0 for _ in range(nr_noduri + 1)]
  for item in puncteDeControl:
    vizitate[item] = 1
  lista_adiacenta = [[] for _ in range(nr_noduri + 1)]
  for muchie in muchii:
    lista_adiacenta[muchie[0]].append(muchie[1])
    lista_adiacenta[muchie[1]].append(muchie[0])

  distante = [0 for _ in range(nr_noduri + 1)]
  tati = [-1 for _ in range(nr_noduri + 1)]
  coada = puncteDeControl
  while len(coada) > 0:
    nod = coada.pop(0)
    for item in lista_adiacenta[nod]:
      if not vizitate[item]:  
        tati[item] = nod
        vizitate[item] = 1
        distante[item] = distante[nod] + 1
        coada.append(item) 
  
  return distante
      

muchii = [[1, 2],[1, 3],[1, 4],[2, 5],[2, 9],[3, 5],[3, 7],[5, 7],[6, 7],[6, 8],[4, 6]]
print(distantePuncteControl(9, muchii, [8, 9]))