Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Input
- n = int(input())
- el = [int(x) for x in input().rstrip().split()]
- win_len = int(input())
- # Init
- tail = [[-1, -1]]
- head = [[-1, -1]]
- max_tail = -1
- max_head = -1
- # Main
- for i in range(win_len):
- if max_tail < el[i]:
- max_tail = el[i]
- tail.append([el[i], max_tail])
- print(max_tail, end=' ')
- for i in range(win_len, n):
- if len(tail) == win_len + 1:
- max_head = -1
- max_tail = -1
- while len(tail) != 1:
- tmp = tail.pop()
- if max_head < tmp[0]:
- max_head = tmp[0]
- head.append([tmp[0], max_head])
- head.pop()
- if max_tail < el[i]:
- max_tail = el[i]
- tail.append([el[i], max_tail])
- if tail[-1][1] > head[-1][1]:
- print(tail[-1][1], end=' ' if i + 1 != n else '')
- else:
- print(head[-1][1], end=' ' if i + 1 != n else '')
Add Comment
Please, Sign In to add comment