Решение задачи Минимум на отрезке с Яндекс Контест

Без пояснения   Просмотров: 4200


Рассмотрим последовательность целых чисел длины n. По ней с шагом 1 двигается «окно» длины k, то есть сначала в «окне» видны первые k чисел, на следующем шаге в «окне» уже будут находиться k чисел, начиная со второго, и так далее до конца последовательности. Требуется для каждого положения «окна» определить минимум в нём.


Код

n, k = map(int, input().split())
a = list(map(int, input().split()))
deque = []
for i in range(k):
    deque.append(a[i])
    while len(deque) > 1 and deque[-1] < deque[-2]:
        del deque[-2]
i = 0
print(deque[0])
for i in range(k, len(a)):
    if deque[0] == a[i - k] or len(deque) > k:
        del deque[0]
    deque.append(a[i])
    while len(deque) > 1 and deque[-1] < deque[-2]:
        del deque[-2]
    print(deque[0])

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться



Заявка на расчет