def krajSviPuteva(x):
    
    a = (float('inf'), 0)
    b = Data_Manager()
    end = b.pocetakSav()
    for allOfIt in end:
        putvi = x
        putvi_2 = allOfIt
        STAZA = algo(putvi, putvi_2)
        if STAZA[0] < a[0]:
            a = STAZA
    mesto = a[0]
    STAZA = a[1]
    prosto_A = STAZA[0]
    prosto_B = len(STAZA) - 1
    allToged = mesto
    return (prosto_A, STAZA[prosto_B], allToged)
def pocniOdArray( puteljak ):
    infromacija = Data_Manager()
    papir = list
    a = defaultdict( papir )
    value = 0   
    abc = infromacija.pocetakSav()
    
    for point in abc:
        myArray = 0
        presliSve = []
        putic = []
        thisPint = point
        presliSve.append(thisPint)
        alpha = point
        spoj = infromacija.dajMiSpoj(point)
        
        heapq.heapify(spoj)
        while spoj:
            alphaAll = 0
            getInfo = spoj
            kolikoJeSkupo, PartOne, PartTwo = heapq.heappop(getInfo)
            if PartTwo not in presliSve:
                getAllofInfo = PartTwo
                presliSve.append(getAllofInfo)
                all_Together = (PartOne, PartTwo, kolikoJeSkupo)
                putic.append(all_Together)
                
                putItBackIn = PartTwo
        
                for all in infromacija.dajMiSpoj(putItBackIn):
                    abc = spoj
                    
                    heapq.heappush(abc, all)
                    alphaTo = putic
        puteljak.append(alphaTo)
    
    put_1 = []
    put_2 = []
    put_3 = []
    for all in puteljak:
        put_1.append(nacrtajSvePuteve(all))
    return put_1