|
findMinDistances v g =
|
|
let weights = mapWithKey (\(_,j) w -> Shortest w [j]) g
|
|
trivial = fromList [ ((i,i), Shortest mempty []) | i <- v ]
|
|
clean d = fromJust <$> filter isJust (d \\ trivial)
|
|
in buildPaths $ clean $ floydWarshall v (weights <> trivial)
|