Ctrl K

Больше всего блоков после слияний

Сложная
Дан массив положительных целых чисел values. За одну операцию можно выбрать отрезок подряд идущих элементов и заменить его одним числом — суммой этих элементов. Например, из [1, 3, 5, 6], слив [3, 5], получим [1, 8, 6]. Операций можно сделать сколько угодно, в том числе ни одной. Верните наибольшую длину, которую может иметь массив, не убывающий слева направо, после таких операций.
Пример 1
values=[6, 1, 2, 4] → 2

После 6 нужен блок с суммой не меньше 6: 1 + 2 + 4 = 7, получаем [6, 7]. Три блока не выйдет — первый блок не меньше 6, а оставшихся чисел хватает только на один такой.

Пример 2
values=[2, 2, 5, 9] → 4

Массив уже не убывает, сливать ничего не нужно.

Пример 3
values=[4, 3, 2, 7, 1] → 3

Например, [4, 3 + 2, 7 + 1] = [4, 5, 8].

Ограничения
  • 1 ≤ len(values) ≤ 10⁵
  • 1 ≤ values[i] ≤ 10⁵
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиОтрезки, которые можно выровнять СложнаяВода между стенами СложнаяСамый большой горящий блок СложнаяКороткий отрезок с нужной суммой СложнаяЛягушка на столбиках Сложная
загружаем Python…
Вход
values=[6, 1, 2, 4]
Ожидается
2

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