#include <iostream>
#include <stdio.h>

using namespace std;


// Создайте метод reset, который очищает стек от элементов.
// Создайте метод push, который добавляет в стек новый элемент.
// Создайте метод pop, который удаляет последний элемент.
// Создайте метод print, который выводит в консоль все элементы стека в формате: ( 0 1 2 )

#define STACK_SIZE	10


class Stack
{
public:
	Stack() : top(-1) {}
	~Stack() {}

private:
	int top;
	int data[STACK_SIZE];

public:
	void reset(void) {
		top = -1;
	}

	void push(int val) {
		if (top != STACK_SIZE - 1) 
			data[++top] = val;
	}

	void pop(void) {
		if (top != -1)
			top--;
	}

	void print(void) {
		if (top == -1) {
			cout << "Stack is empty" << endl;
			return;
		}
		cout << "( ";
		for (int i = 0; i <= top; i++)
			cout << data[i] << " ";
		cout << ")" << endl;

	}
};


int main()
{
	Stack stack;

	stack.push(21);
	stack.push(22);
	stack.push(23);
	stack.push(24);

	stack.print();

	stack.pop();
	stack.print();
	stack.pop();
	stack.print();

	stack.reset();
	stack.print();

	stack.push(1);
	stack.push(2);
	stack.push(3);
	stack.print();

	return 0;
}