n, k = map(int, input().split())
arr = list(map(int, input().split()))
from collections import deque
def max_min(arr, func):
q = deque()
for i, v in enumerate(arr, 1):
while q and q[0][0] <= i - k: q.popleft()
while q and func(v, q[-1][1]): q.pop() # v 在前
q.append((i, v))
if i >= k: print(q[0][1], end=' ')
print("")
max_min(arr, lambda x, y:x < y) # 单调递增队列
max_min(arr, lambda x, y:x > y) # 单调递减队列
好家伙,一开始我还疑惑为什么要用deque,list不是更常用吗,直到我用list超时。。搜了一下才知道deque性能比list好太多
这个用lambda表达式来当flag判断该用单增队列还是单减队列的操作太秀了,,,6666666
学到不少东西。厉害了
感谢,终于知道为什么超时了
6啊6啊