Контест Middle Графы: BFS и DFS спрашивают часто обновлено
Минимум семестров с учётом пререквизитов
Условие
В программе n курсов и m требований вида a b: курс a нужно сдать раньше курса b (в одном из предыдущих семестров). За семестр можно пройти сколько угодно курсов, если все их пререквизиты уже сданы. За какое минимальное число семестров можно пройти все курсы? Если требования противоречивы (есть цикл), выведите -1.
Ввод: в первой строке n и m (1 ≤ n ≤ 2500, 0 ≤ m ≤ 2500), далее m строк a b (a ≠ b, повторы возможны).
Вывод: минимальное число семестров или -1.
Пример 1
Ввод:
4 3
1 2
1 3
3 4
Вывод:
3
Пример 2
Ввод:
3 3
1 2
2 3
3 1
Вывод:
-1
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.