#8933. 单调队列

单调队列

Description

给定一个长度为 nnn<=106n<=10^6)的数组。有一个大小为 kk 的滑动窗口从数组的最左端移动到最右端。你可以看到窗口中的 kk 个数字。窗口每次向右滑动一个数字的距离。

下面是一个例子:

数组是 [1 3 -1 -3 5 3 6 7], k = 3。

窗口位置 最小值 最大值
[1 3 -1] -3 5 3 6 7 -1 3
1 [3 -1 -3] 5 3 6 7 -3
1 3 [-1 -3 5] 3 6 7 5
1 3 -1 [-3 5 3] 6 7
1 3 -1 -3 [5 3 6] 7 3 6
1 3 -1 -3 5 [3 6 7] 7

Input Format

输入包括两行。 第一行包括 nnkk,分别表示数组的长度和窗口的大小。 第二行包括n个数字。

Output Format

输出包括两行。 第一行包括窗口从左至右移动的每个位置的最小值。 第二行包括窗口从左至右移动的每个位置的最大值。

8 3
1 3 -1 -3 5 3 6 7
-1 -3 -3 -3 3 3
3 3 5 5 6 7

Hint

1<kn<=1061<k\leq n<=10^6