#include <stdio.h>
#include <stdint.h>
#include <string.h>
#define MAX 10
char stack[MAX][5] = {0};
void process_stack(int n) {
int pos = 0;
while (n--) {
char cmd[100];
fgets(cmd, sizeof(cmd), stdin);
if (!strncmp(cmd, "push", 4)) {
if (pos >= MAX) {
printf("Stack Overflow\n");
} else {
char *c = cmd;
char *p = stack[pos++];
while (*c++ != ' ');
while (*c)
*p++ = *c++;
*p = '\0';
}
} else if (!strncmp(cmd, "pop", 3)) {
if (pos <= 0) {
printf("Stack Underflow\n");
} else {
printf("%s", stack[--pos]);
}
}
}
}
int main() {
int n;
scanf("%d", &n);
getchar(); // Consume newline after number
process_stack(n);
return 0;
}
Input
5 push 10 push 20 pop pop pop
Expected Output
20 10 Stack Underflow