Conexiones críticas de una red

Tiempo límite 2 s
Memoria límite 256 MB
Casos de prueba 8
Dificultad Difícil Algoritmos
Mostrar (2) DFSGrafos
Enviar solución

Puntos: 20

Tipos de problema
Lenguajes permitidos
C, C++, Java, Python, Rust

Una red conexa tiene \(n\) servidores, numerados de \(0\) a \(n - 1\), y \(m\) conexiones bidireccionales. Una conexión es crítica si al quitarla algún servidor deja de poder comunicarse con otro. Encuentra todas las conexiones críticas.

Entrada

La primera línea tiene \(n\) \((2 \le n \le 10^5)\) y \(m\) \((n - 1 \le m \le 10^5)\). Cada una de las siguientes \(m\) líneas tiene una conexión \(a\) \(b\) \((a \ne b)\). No hay conexiones repetidas y la red es conexa.

Salida

La primera línea tiene la cantidad \(k\) de conexiones críticas. Siguen \(k\) líneas con cada una como \(a\) \(b\), con \(a < b\), ordenadas por \(a\) y luego por \(b\).

Ejemplo 1

Entrada

4 4
0 1
1 2
2 0
1 3

Salida

1
1 3

Ejemplo 2

Entrada

2 1
0 1

Salida

1
0 1

Comentarios

No hay comentarios por el momento.