Максимальная сумма подотрезка длины k

Просмотр в формате PDF

Submit solution


Очки: 170
Ограничение по времени: 2.0s
Ограничение по памяти: 256M

Автор:
Problem type
Allowed languages
C++, Python

Трейдер анализирует свою ежедневную прибыль за n дней. Для каждого дня известна целая величина прибыли a_i, которая может быть как положительной, так и отрицательной.

Нужно выбрать непрерывный промежуток ровно из k дней, на котором суммарная прибыль максимальна.

Требуется найти максимальную сумму на таком отрезке длины k, а также вывести номер первого дня l одного из оптимальных промежутков. Если оптимальных промежутков несколько, выведите наименьший возможный l.

Иными словами, требуется найти максимум значения

a_l + a_{l+1} + ... + a_{l+k-1}

по всем l от 1 до n - k + 1.

Входные данные

В первой строке заданы два целых числа n и k (1 <= k <= n <= 2 * 10^5).

Во второй строке заданы n целых чисел a_i (-10^9 <= a_i <= 10^9) — прибыль трейдера по дням.

Выходные данные

В одной строке выведите через пробел два числа: максимальную суммарную прибыль на отрезке длины k и наименьший номер первого дня l, на котором этот максимум достигается.

Ограничения

  • 1 <= k <= n <= 2 * 10^5
  • -10^9 <= a_i <= 10^9
  • Используется стандартный ввод и стандартный вывод

Примеры

Пример 1

Входные данные

5 2
3 -2 5 -1 4

Выходные данные

4 3
Пример 2

Входные данные

6 2
-3 -8 -3 -8 -3 -8

Выходные данные

-11 1

Комментарии

Еще нет ни одного комментария.