Ctrl K

Задания с перерывом на остывание

Средняя
Станку нужно выполнить задания jobs; каждое задание обозначено заглавной латинской буквой, одинаковые буквы — задания одного типа. За один такт станок выполняет одно задание или простаивает. Задания можно выполнять в любом порядке. После задания какого-то типа станок должен остыть: между двумя заданиями одного типа должно пройти не меньше cooldown тактов. Верните наименьшее число тактов, за которое можно выполнить все задания.
Пример 1
jobs=["X", "X", "X", "Y"], cooldown=1 → 5

Например, X Y X _ X: между запусками X должен пройти хотя бы один такт, так что один такт простаивает. Итого 5.

Пример 2
jobs=["P", "Q", "P", "R", "Q", "S"], cooldown=1 → 6

Порядок P Q R P S Q обходится без простоев.

Пример 3
jobs=["K", "K", "K"], cooldown=3 → 9

K _ _ _ K _ _ _ K — 9 тактов.

Ограничения
  • 1 ≤ len(jobs) ≤ 10⁴
  • jobs[i] — заглавная латинская буква
  • 0 ≤ cooldown ≤ 100
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиМетки вразнобой СредняяСамые частые значения СредняяСамые частые запросы СредняяБез одинаковых соседей СредняяВыбор с лимитом по тегам Средняя
загружаем Python…
Вход
jobs=["X", "X", "X", "Y"], cooldown=1
Ожидается
5

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