Реалізуйте структуру даних стек, яка підтримує такі операції:
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