Контест Senior Задачи на Kotlin обновлено

Порядок сборки модулей: топологическая сортировка

Условие

В проекте n модулей и m зависимостей вида u v: модуль u нужно собрать раньше v. Выведи порядок сборки. Если подходящих порядков несколько, выведи лексикографически наименьший (на каждом шаге бери готовый модуль с минимальным номером). Если зависимости циклические, выведи -1.

Ввод. n m (1 ≤ n ≤ 2000, 0 ≤ m ≤ 4000), затем m пар u v.

Вывод. n номеров через пробел или -1.

Как подойти

Подсказки: 2
  1. Начни с модулей, у которых нет входящих зависимостей.
  2. Минимальный номер на каждом шаге даёт куча.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.