Ctrl K

Когда собрать букеты

Средняя
На грядке в ряд растут цветы; цветок i распускается в день bloom[i] и дальше остаётся цветущим. Нужно собрать bouquets букетов, каждый ровно из size цветков, которые растут подряд. Один цветок может попасть только в один букет. Верните самый ранний день, к которому можно собрать все букеты, или -1, если это невозможно никогда.
Пример 1
bloom=[5, 2, 2, 8, 3, 3], bouquets=2, size=2 → 3

К 3-му дню цветут цветы 2, 3, 5 и 6 (с единицы): пара 2–3 и пара 5–6 — два букета.

Пример 2
bloom=[4, 4, 4], bouquets=2, size=2 → -1

Для двух букетов по два цветка нужно 4 цветка, а растёт только 3.

Пример 3
bloom=[1, 9, 1, 1], bouquets=1, size=3 → 9

Три цветка подряд найдутся только после 9-го дня: цветы 2–4.

Ограничения
  • 1 ≤ len(bloom) ≤ 10⁵
  • 1 ≤ bloom[i] ≤ 10⁹
  • 1 ≤ bouquets ≤ 10⁶
  • 1 ≤ size ≤ len(bloom)
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПоиск в сдвинутом отсортированном массиве СредняяПервая и последняя копия СредняяПоиск в таблице-цепочке СредняяПоиск в сдвинутом массиве с повторами СредняяМинимум в сдвинутом списке Средняя
загружаем Python…
Вход
bloom=[5, 2, 2, 8, 3, 3], bouquets=2, size=2
Ожидается
3

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