Minimum edge reversals
Your task
You are given a directed graph with n nodes (0..n-1) and edges [u, v]. You may travel along an edge in its given direction for free, or traverse it against its direction by paying 1 (reversing that edge). Return the minimum number of edge reversals needed to get from src to dst, or -1 if dst is unreachable even with reversals. Assume 1 <= n <= 100000; a 0-1 BFS in O(V+E) is the intended solution.
Examples
min_edge_reversals(n: int, edges: list[list[int]], src: int, dst: int) -> intExample 1
Input
min_edge_reversals(4, [[0, 1], [1, 2], [3, 2]], 0, 3)Output
1