Контест Middle Дженерики обновлено

Обобщённый стек с минимумом за O(1)

Условие

Реализуйте обобщённый стек MinStack<T> where T : IComparable<T>, который за O(1) отдаёт минимум. Проверим его на целых числах.

Команды: push x, pop (вывести снятый элемент), top (вывести вершину), min (вывести минимум). Если стек пуст, для pop, top и min выведите EMPTY.

Ввод: q (1 ≤ q ≤ 2·10⁴), затем q команд, |x| ≤ 10⁹.

Вывод: результаты pop, top, min по строке.

Пример

7
push 3
push 1
push 2
min
pop
pop
min
1
2
1
3

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

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