Timofey Yanko
Ученик
(144),
на голосовании
8 месяцев назад
Помогите с задачей, Очередь с поддержкой минимума Реализуйте очередь с поддержкой минимума.
Входные данные
Первая строка входных данных содержит число n — количество операций с очередью. В каждой следующей строке содержится число ai (0≤ai≤10000 ). Если ai>0 , то это число необходимо добавить в очередь. Если ai=0 , то это запрос на удаление элемента из очереди.
Выходные данные
На каждый запрос удаления элемента из очереди необходимо вывести значение минимального элемента очереди (учитывая значение удаляемого элемента). Если запрос удаления вызывается на пустой очереди, то необходимо вывести −1 У меня есть код но он не может выполнить правильно все 18 вводов которые прилагаются на площадке с заданием, вот код: a = [ ] for _ in range(int(input())): v = int(input()) if v > 0: a.append(v) else: if a: print(min(a)) a.pop(0) else: print(-1) Ввод : 9 5 4 3 6 0 0 0 0 0 Вывод который должен быть: 3 3 3 6 -1
У тебя ошибка в логике удалить минимальный элемент очереди. Ты возвращаешь в выводе минимальный, а удаляешь - первый. Ты каким образом решил, что первый=минимальный, он ведь может на любом месте стоять?
Реализуйте очередь с поддержкой минимума.
Входные данные
Первая строка входных данных содержит число n
— количество операций с очередью. В каждой следующей строке содержится число ai
(0≤ai≤10000
). Если ai>0
, то это число необходимо добавить в очередь. Если ai=0
, то это запрос на удаление элемента из очереди.
Выходные данные
На каждый запрос удаления элемента из очереди необходимо вывести значение минимального элемента очереди (учитывая значение удаляемого элемента). Если запрос удаления вызывается на пустой очереди, то необходимо вывести −1
У меня есть код но он не может выполнить правильно все 18 вводов которые прилагаются на площадке с заданием, вот код:
a = [ ]
for _ in range(int(input())):
v = int(input())
if v > 0:
a.append(v)
else:
if a:
print(min(a))
a.pop(0)
else:
print(-1)
Ввод :
9
5
4
3
6
0
0
0
0
0
Вывод который должен быть:
3
3
3
6
-1