Контест Middle Дженерики и стирание спрашивают часто обновлено

Стек с минимумом

Условие

Реализуйте стек, который за O(1) отдаёт минимальный элемент. Операции:

  • push x положить число;
  • pop снять верхний элемент (если стек пуст, вывести empty);
  • top вывести верхний элемент или empty;
  • min вывести минимум стека или empty.

Попробуйте написать обобщённый класс MinStack<T extends Comparable<T>>.

Ввод: в первой строке q (1 ≤ q ≤ 2·10⁴), далее операции. Числа по модулю до 10⁹.

Вывод: ответы на top, min и сообщения empty от pop, по одному в строке.

Пример

8
push 5
push 3
push 7
min
pop
pop
min
top
3
5
5

Как подойти

Подсказки: 2
  1. Храните второй стек с текущими минимумами.
  2. Равные минимумы тоже нужно класть.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.