Ctrl K

Лучшая сумма из целых блоков

Средняя
Дан массив целых чисел values и число block. Выберите непрерывный непустой отрезок массива, длина которого кратна block (то есть равна block, 2·block, 3·block и так далее), и верните наибольшую возможную сумму его элементов. Элементы могут быть отрицательными, поэтому ответ тоже может быть отрицательным.
Пример 1
values=[3, -1, 4, -6, 2], block=2 → 3

Подходят только отрезки чётной длины. Весь [3, -1, 4, -6] даёт 0, [3, -1] — 2, а [-1, 4] — 3: это и есть ответ.

Пример 2
values=[-7, -2, -9], block=3 → -18

Длина должна делиться на 3, так что остаётся только весь массив: -7 - 2 - 9 = -18.

Пример 3
values=[5, 1, -3, 8], block=1 → 11

При block = 1 подходит любой отрезок; лучший — весь массив с суммой 11.

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

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