Future dependency resolution graph
Your task
Resolve a graph of futures. nodes is a list of [id, kind, deps, latency]. kind is 'value' (an immediately-available leaf, deps empty) or 'combine' (resolves only after ALL of its deps resolve). A 'value' node resolves at time = latency. A 'combine' node resolves at time = (max of its deps' resolution times) + latency. There are no cycles. Return the list of [id, resolution_time] sorted by resolution_time ascending, breaking ties by ascending id.
Examples
resolve_futures(nodes: list[list]) -> list[list]Example 1
Input
resolve_futures([[1, "value", [], 5], [2, "value", [], 3], [3, "combine", [1, 2], 2]])Output
[[2, 3], [1, 5], [3, 7]]