Ctrl K

Учебный план с лимитом нагрузки

Сложная
В программе count курсов с номерами от 1 до count. Пара [a, b] в списке prereqs означает, что курс a нужно закончить раньше, чем начнётся курс b. Зависимости не образуют циклов. За один семестр можно пройти не больше load курсов, и все их предварительные курсы должны быть закончены в предыдущих семестрах. Верните наименьшее число семестров, за которое можно пройти все курсы.
Пример 1
count=5, prereqs=[[1, 3], [2, 3], [3, 4], [3, 5]], load=2 → 3

Семестр 1: курсы 1 и 2. Семестр 2: курс 3. Семестр 3: курсы 4 и 5.

Пример 2
count=6, prereqs=[[1, 2], [2, 3]], load=2 → 3

Цепочка 1 → 2 → 3 занимает три семестра, поэтому курс 1 нужно взять сразу: 1 и 4, затем 2 и 5, затем 3 и 6. Если начать с 4 и 5, выйдет четыре семестра.

Пример 3
count=4, prereqs=[], load=4 → 1

Зависимостей нет, все четыре курса помещаются в один семестр.

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

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