We use cookies for site analytics. Accept to help us understand how the site is used. See our Privacy Policy for details.
A hard graphs problem, graded against 5 test cases (2 of them hidden).
Nodes and edges - traversal, connectivity, cycles, and shortest paths.
Reach for it when you see: Explicit edges, a grid treated as a graph, or dependencies between items.
More Graphsproblems →Let `cost[v]` = current best cost to reach v with at most `r` edges. Initialise `cost[src] = 0`, everything else infinity.
Repeat `k + 1` times: build a fresh `next` from a copy of `cost`, then for every edge `(u, v, w)` set `next[v] = min(next[v], cost[u] + w)`. Crucially we read from the *previous* round's snapshot, otherwise a single edge could be traversed multiple times within one round.
After `k + 1` rounds, `cost[dst]` is the answer (or `-1` if still infinity).
The full reference solution in every supported language stays in the editor above - reveal it there once you have had a real attempt.
Read off this problem's own test suite, so these are the cases a submission actually has to survive.
These apply to the pattern as a whole, not just this problem.