Malla de cursos

Tiempo límite 2 s
Memoria límite 256 MB
Casos de prueba 13
Dificultad Medio Algoritmos
Mostrar (4) BFSDFSGrafosOrden topológico
Enviar solución

Puntos: 10

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

Hay \(n\) cursos numerados de \(0\) a \(n-1\) y \(m\) requisitos. Un requisito \((a, b)\) significa que para tomar el curso \(a\) primero hay que aprobar el curso \(b\). ¿Se pueden aprobar todos los cursos?

Entrada

La primera línea tiene \(n\) \((1 \le n \le 10^5)\) y \(m\) \((0 \le m \le 2 \cdot 10^5)\). Siguen \(m\) líneas con un requisito \(a\) \(b\) cada una \((0 \le a, b < n,\ a \ne b)\); no hay requisitos repetidos.

Salida

true si se pueden aprobar todos los cursos o false si no.

Nota

Puede haber cadenas de \(10^5\) requisitos: cuidado con la profundidad de la recursión.

Ejemplo 1

Entrada

2 1
1 0

Salida

true

Ejemplo 2

Entrada

2 2
1 0
0 1

Salida

false

Basado en el problema 207 de LeetCode, Course Schedule, adaptado a entrada y salida estándar; enunciado redactado para este juez. Es parte de la lista Grind 75 de Yangshun Tay.


Comentarios

No hay comentarios por el momento.