#AT0247. 【模板】单调队列

【模板】单调队列

题目描述

给定一个数组,现在有一个可以滑动的井口,井口从数组的最左边移动到最右边。井口的大小为 mm,你只能在井口中看到 mm 个数。每次井口向右移动一个位置。问你井口在每个位置时,在井口中可以看到的最小值。

输入格式

输入包含两行,第一行两个整数 nnmmnn 代表数组大小,mm 代表井口的大小。(1n106,1m1041 \le n \le 10^6, 1 \le m \le 10^4

第二行有 nn 个整数,代表数组每个位置的值 aia_i108ai108-10^8 \le a_i \le 10^8

输出格式

输出一行,从左到右,井口位于每个位置时,井口中的最小值。

样例

7 3
3 5 4 6 8 1 2
3 4 4 1 1

样例解释

输入样例解释:

井口初始时位于数组的前三个数,即 3,5,43,5,4,井口中的最小值为 33

井口向右移动一个位置,位于数组的第二到第四个数,即 5,4,65,4,6,井口中的最小值为 44

井口向右移动一个位置,位于数组的第三到第五个数,即 4,6,84,6,8,井口中的最小值为 44

井口向右移动一个位置,位于数组的第四到第六个数,即 6,8,16,8,1,井口中的最小值为 11

井口向右移动一个位置,位于数组的第五到第七个数,即 8,1,28,1,2,井口中的最小值为 11

数据范围

1n106,1m1041 \le n \le 10^6, 1 \le m \le 10^4