Problem E: 双向队列实现滑动窗口最大值

Memory Limit:128 MB Time Limit:1.000 S
Judge Style:Text Compare Creator:
Submit:3 Solved:3

Description

给定n个整数的数组和窗口大小为 k, 滑动窗口从数组最左边移动到最右边,每次窗口移动1位,要求输出每一个窗口中的最大值。 


示例:原始数组为: [1 3 -1 -3 5 3 6 7]。滑动窗口大小 k=3。

        窗口位置[13-1]→最大值3;[3-1-3]→最大值3;[-1-35]→最大值5……最终结果是[3 3 5 5 6 7]。

Input

输入第一行两个整数 n表示数组的大小, k表示滑动窗口的大小。二行为 n 个整数为数组的元素,其间空格分隔。

Output

输出一行为每个窗口中的最大值。其间空格分隔。

Sample Input Copy

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

Sample Output Copy

3 3 5 5 6 7

HINT

 1=<n<=1000;  -1000=<数组中的数<=1000: