Контест Senior Задачи на Kotlin обновлено
Порядок сборки модулей: топологическая сортировка
Условие
В проекте n модулей и m зависимостей вида u v: модуль u нужно собрать раньше v. Выведи порядок сборки. Если подходящих порядков несколько, выведи лексикографически наименьший (на каждом шаге бери готовый модуль с минимальным номером). Если зависимости циклические, выведи -1.
Ввод. n m (1 ≤ n ≤ 2000, 0 ≤ m ≤ 4000), затем m пар u v.
Вывод. n номеров через пробел или -1.
Как подойти
Подсказки: 2
- Начни с модулей, у которых нет входящих зависимостей.
- Минимальный номер на каждом шаге даёт куча.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.