RosettaCodeData/Task/Floyd-Warshall-algorithm/Haskell/floyd-warshall-algorithm-6.hs
2023-07-01 13:44:08 -04:00

5 lines
268 B
Haskell

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)