def shortest_reach(n, edges, s): graph = Graph(False) for vertex in range(1, n + 1): graph.add_vertex(vertex) for begin, end, weight in edges: graph.add_edge(begin, end, weight) shortest_paths = graph.dijkstra_shortest_path(s) return [ value.distance if value.distance != inf else -1 for key, value in sorted(shortest_paths.items()) if key != s ]