Ctrl K

Два непересекающихся отрезка

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

Отрезок [4, 6] длины 2 даёт 10, отрезок [8] длины 1 — ещё 8. Итого 18.

Пример 2
values=[5, 1, 1, 9, 9], len_a=1, len_b=3 → 24

Отрезок длины 3 может стоять и раньше, и позже: [1, 9, 9] даёт 19, а [5] перед ним — ещё 5. Итого 24.

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

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