Bridge detection
Your task
You are given an undirected graph with n nodes (0..n-1) and a list of undirected edges [u, v]. A bridge is an edge whose removal increases the number of connected components. Return the total number of bridges. The graph may be disconnected and may contain parallel edges (a duplicated edge is never a bridge). Constraints: 1 <= n <= 2000.
Examples
count_bridges(n: int, edges: list[list[int]]) -> intExample 1
Input
count_bridges(4, [[0, 1], [1, 2], [2, 3]])Output
3