#include <stdio.h> #include <string.h> #include <stdbool.h> #define STACK_SIZE 100000 int contents[STACK_SIZE] = {0}; int count = 0; bool is_empty(); bool is_full(); void pop(); void top(); void push(int n); int main(){ int cmdn[100000] = {0}; int cmdc[100000] = {0}; int n; scanf("%d",&n); for (int i = 0; i < n; i++){ char cmd[5] = {0}; scanf("%s",cmd); if (strcmp(cmd,"push") == 0){ cmdc[i] = 1; int num; scanf("%d",&num); cmdn[i] = num; } else if (strcmp(cmd,"pop") == 0){ cmdc[i] = 2; } else if (strcmp(cmd,"top") == 0){ cmdc[i] = 3; } } for (int i = 0; i < n; i++){ if (cmdc[i] == 1){ push(cmdn[i]); } else if (cmdc[i] == 2){ pop(); } else if (cmdc[i] == 3){ top(); } } } bool is_empty(){ return count == 0; } bool is_full(){ return count == STACK_SIZE; } void pop(){ if (is_empty()){ printf("error\n"); } else { printf("%d\n",contents[--count]); } } void top(){ if (is_empty()){ printf("error\n"); } else { printf("%d\n",contents[count-1]); } } void push(int n){ if (is_full()){ return; } else { contents[count++] = n; } }