Максимум на скользящем окне

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

Submit solution


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

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

Система мониторинга записывает нагрузку на сервер по минутам. За каждый момент времени нужно определить пиковую нагрузку за последние k подряд идущих минут.

Даны n значений нагрузки и число k — размер окна наблюдения. Для каждого отрезка из k подряд идущих минут выведите максимальное значение нагрузки на этом отрезке. Окно последовательно сдвигается слева направо, поэтому всего нужно вывести n - k + 1 значений.

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

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

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

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

Выведите n - k + 1 чисел через пробел — пиковые нагрузки для всех окон длины k в порядке слева направо.

Ограничения

1 <= k <= n <= 2*10^5

-10^9 <= a_i <= 10^9

Примеры

Пример 1

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

1 1
0

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

0
Пример 2

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

7 3
3 1 3 2 5 5 4

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

3 3 5 5 5

Комментарии

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