Ctrl K

Все предварительные задачи

Средняя
В проекте count задач с номерами от 0 до count - 1. Список deps описывает прямые зависимости: пара [a, b] означает, что задачу a нужно сделать раньше задачи b. Циклических зависимостей нет. Задача a считается предварительной для b, если от a до b можно дойти по цепочке зависимостей (одной или нескольким). Верните список answer, где answer[i] — номера всех предварительных задач для задачи i в порядке возрастания.
Пример 1
count=5, deps=[[0, 2], [1, 2], [2, 4], [3, 4]] → [[], [], [0, 1], [], [0, 1, 2, 3]]

Задаче 2 нужны задачи 0 и 1. Задаче 4 напрямую нужны 2 и 3, а через задачу 2 — ещё 0 и 1. У задач 0, 1 и 3 предпосылок нет.

Пример 2
count=4, deps=[[3, 2], [2, 1], [1, 0]] → [[1, 2, 3], [2, 3], [3], []]

Цепочка 3 → 2 → 1 → 0: задаче 0 нужны все остальные, а задаче 3 — ни одна.

Пример 3
count=3, deps=[] → [[], [], []]
Ограничения
  • 1 ≤ count ≤ 1000
  • 0 ≤ len(deps) ≤ min(2000, count·(count − 1) / 2)
  • deps[i] = [a, b], 0 ≤ a, b ≤ count − 1, a ≠ b
  • Одинаковых пар в deps нет
  • Зависимости не образуют циклов
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПорядок сборки модулей СредняяОчередь на курсы СредняяЛучшие корни дерева СредняяПути, которые всегда заканчиваются СредняяСамый длинный поход по лесу Средняя
загружаем Python…
Вход
count=5, deps=[[0, 2], [1, 2], [2, 4], [3, 4]]
Ожидается
[[], [], [0, 1], [], [0, 1, 2, 3]]

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 65 тестов на сервере, включая скрытые.