Ctrl K

Связь в самом глухом селе

Сложная
Вдоль дороги стоят n сёл, пронумерованных от 0 до n - 1; в селе i уже есть towers[i] вышек связи. Каждая вышка покрывает сёла на расстоянии не больше reach: вышка в селе i ловится в селе j, если |i - j| ≤ reach. Сигнал села — число вышек, которые его покрывают. Бюджета хватает ещё на budget вышек с тем же радиусом; их можно поставить в любые сёла, по несколько в одно. Верните наибольшее возможное значение самого слабого сигнала среди всех сёл после установки новых вышек.
Пример 1
towers=[0, 3, 0, 0, 1], reach=1, budget=2 → 3

Без новых вышек сигнал в сёлах равен [3, 3, 3, 1, 1]. Две новые вышки в селе 3 дают [3, 3, 5, 3, 3] — минимум 3, больше не выйдет.

Пример 2
towers=[2, 0, 5], reach=0, budget=4 → 3

Вышка покрывает только своё село. Три новые вышки — в село 1, одна — в село 0: сигналы [3, 3, 5].

Пример 3
towers=[1, 1, 1, 1, 1, 1], reach=2, budget=0 → 3
Ограничения
  • 1 ≤ n = len(towers) ≤ 10⁵
  • 0 ≤ towers[i] ≤ 10⁵
  • 0 ≤ reach ≤ n - 1
  • 0 ≤ budget ≤ 10⁹
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиКороткий отрезок с нужной суммой СложнаяСамая длинная серия станков в бюджет СложнаяПодравнять числа прибавлением СредняяКовёр на окрашенные отрезки СредняяСамый богатый ряд домов Средняя
загружаем Python…
Вход
towers=[0, 3, 0, 0, 1], reach=1, budget=2
Ожидается
3

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