#!/usr/bin/env python3
# source for data https://raw.githubusercontent.com/PeaceAyegba/MST-Algorithms/master/dataset%2036.txt
from math import inf
from kruskal import kruskal,weighted_edges,as_dot
import sys
def total_dist(T,D):
sum = 0
for (u,v) in T:
sum += D[u][v]
return sum
edges = [
[0,1,81.5865],
[1,2,82.5435],
[2,3,67.9046],
[3,4,64.1961],
[4,5,253.6179],
[5,6,113.4832],
[1,6,89.886],
[0,9,252.6349],
[0,36,338.7641],
[1,7,73.8749],
[5,8,208.4023],
[5,25,123.7738],
[7,8,169.7241],
[8,20,196.889],
[8,23,173.2129],
[8,35,160.5986],
[9,35,118.3903],
[10,11,261.9837],
[10,33,185.8489],
[10,36,219.6409],
[36,9,349.2051],
[11,13,209.3103],
[12,13,95.6952],
[12,17,232.2036],
[13,14,285.0276],
[14,15,129.7066],
[14,16,187.3142],
[15,21,298.9509],
[16,17,130.5206],
[17,18,137.4058],
[18,19,165.1677],
[19,35,130.2419],
[20,19,84.6042],
[20,23,181.5531],
[20,29,332.0392],
[21,22,125.4547],
[22,20,337.2769],
[23,24,165.3347],
[24,25,180.6815],
[26,23,66.4409],
[26,30,112.0243],
[27,29,54.7012],
[27,31,174.6213],
[28,31,92.6074],
[28,25,154.9616],
[29,30,177.6956],
[30,27,73.2377],
[31,32,189.1641],
[32,25,166.7202],
[33,11,91.1888],
[33,34,199.7968],
[34,12,202.7576],
[34,18,171.3123],
[34,35,161.2244],
[34,9,138.7795]
]
Graph = { j : [] for j in range(0,37) }
Dist = [ [ inf for j in range(37) ] for i in range(37) ]
for edge in edges:
(a,b,dist) = edge
Dist[a][b] = Dist[b][a] = dist
Graph[a].append((b,dist))
Graph[b].append((a,dist))
E=weighted_edges(Graph)
T = kruskal (37,E)
as_dot(T)
print(total_dist(T,Dist),file=sys.stderr)