In a C3 AI pipeline dependency graph, each directed edge (u, v, w) means task u can trigger task v with impact score w. Given a graph, a start node, an end node, and an integer k, return the top k highest-scoring simple paths from start to end, ordered by total score descending.
A path is simple, meaning it cannot visit the same node more than once. The score of a path is the sum of its edge weights.
Implement a function that takes:
n: number of nodes labeled 0 to n - 1edges: list of directed edges [from_node, to_node, weight]start: starting nodeend: destination nodek: number of paths to returnReturn a list of up to k paths, where each path is represented as [total_score, [node0, node1, ...]].
def top_k_paths(n, edges, start, end, k):