Ctrl K

Ремонт ям на бюджет

Средняя
Дорога описана строкой road: символ 'x' — яма, '.' — ровный участок. Есть бюджет budget. За один выезд бригада заделывает k ям, идущих подряд без промежутков, и это стоит k + 1. Выездов может быть сколько угодно, а заделывать можно и часть подряд идущих ям. Верните наибольшее число ям, которые можно починить, не потратив больше budget.
Пример 1
road='xx.xxxx.x', budget=7 → 5

Чиним все четыре ямы подряд за 4 + 1 = 5. На оставшиеся 2 заделываем ещё одну яму из пары за 1 + 1 = 2. Всего 5 ям.

Пример 2
road='x.x.x', budget=6 → 3

Каждая одиночная яма стоит 2, бюджета хватает на все три.

Пример 3
road='...', budget=4 → 0

Дорога ровная, чинить нечего.

Ограничения
  • 1 ≤ len(road) ≤ 10⁵
  • road состоит только из символов '.' и 'x'
  • 1 ≤ budget ≤ 10⁵ + 1
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамое большое число из кусков СредняяБез одинаковых соседей СредняяОкруглить цены до нужной суммы СредняяОдно слово сильнее другого СредняяРазное число повторов Средняя
загружаем Python…
Вход
road='xx.xxxx.x', budget=7
Ожидается
5

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