eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Класс MinStack

Класс MinStack

Реализуйте структуру данных стек, которая поддерживает следующие операции:

  • push n - Занести в стек число n.
  • pop - Удалить число из стека. Выведите удаленный элемент.
  • top - Выведите число на вершине стека, не удаляя его.
  • GetMin - Выведите наименьший элемент находящийся на данный момент в стеке.
  • size - Выведите размер стека.

Напишите код в соответствии со следующим интерфейсом:

class MyStack // C++
{
private:
  stack<int> s, mn; // s - обычный стек, mn - стек минимумов
public:
  void push(int x); // Занести x в стек
  int pop(void); // Удалить и вернуть верхний элемент стека
  int top(void); // Вернуть верхний элемент стека не удаляя его
  int GetMin(void); // Вернуть наименьший элемент в стеке
  int GetSize(void); // Вернуть размер стека
}
class MyStack // Java
{
  private stack<Integer> s, mn; // s - обычный стек, mn - стек минимумов
  MyStack() // Конструктор
  public void push(int x); // Занести x в стек
  public int pop(void); // Удалить и вернуть верхний элемент стека
  public int top(void); // Вернуть верхний элемент стека не удаляя его
  public int GetMin(void); // Вернуть наименьший элемент в стеке
  public int GetSize(void); // Вернуть размер стека
};

Входные данные

Каждая строка содержит одну команду.

Выходные данные

Для каждой команды вывести ответ в отдельной строке.

Лимит времени 7 секунд
Лимит использования памяти 128 MiB
Входные данные #1
push 6
push 3
push 12
GetMin
pop
size
GetMin

Выходные данные #1
3
12
2
3
Автор Михаил Медведев