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

Класс MinStack

Класс MinStack

Ліміт часу 7 секунд
Ліміт використання пам'яті 128 MiB

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

  • 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); // Вернуть размер стека
};

Вхідні дані

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

Вихідні дані

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

Приклад

Вхідні дані #1
push 6
push 3
push 12
GetMin
pop
size
GetMin

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