Cod sursa(job #3251782)

Utilizator dariusvladBeldi Darius Vlad dariusvlad Data 26 octombrie 2024 21:49:13
Problema BFS - Parcurgere in latime Scor 0
Compilator py Status done
Runda Arhiva educationala Marime 1.1 kb
def memorareListaAdiacenta(fileName):
    vectorMuchii = []
    for linie in open(fileName, "r").read().split("\n"):
        vectorMuchii.append(linie.split(" "))
    aux = vectorMuchii.pop(0)
    nrNoduri = int(aux.pop(0))
    nrMuchii = int(aux.pop(0))
    global s
    s = int(aux.pop(0))
    graf = [[] for i in range(nrNoduri+1)]
    for muchie in vectorMuchii:
        graf[int(muchie[0])].append(int(muchie[1]))
    return graf

def bfs(start, end, graf):
    queue = []
    queue.append(start)
    visited = [False for i in range(len(graf))]
    contor = 0
    nodCurent = 0
    visited[start] = True
    while end not in queue:
        if queue == []:
            return -1
        nodCurent = queue.pop(0)
        for nod in graf[nodCurent]:
            if visited[nod] is False:
                queue.append(nod)
                visited[nod] = True
        contor += 1
    return contor

s = 0
graf = memorareListaAdiacenta("bfs.in")
costuri =[]
for i in range(1,len(graf)):
    costuri.append(bfs(s,i,graf))
out = open("bfs.out","w")
for i in costuri:
    out.write(str(i) + " ")