#include <stdio.h> #include <stdint.h> #include <string.h> #define MAX 10 typedef struct { int arr[MAX]; int top; int capacity; } Stack; void process_stack(int n) { // Your logic here Stack stack = {.top=0,.capacity=MAX}; for (int i=0; i<n; i++) { char op[4]; scanf("%s ",op); if (strcmp(op,"push")==0) { int val; scanf("%d",&val); if (stack.top == stack.capacity) { printf("Stack Overflow\n"); continue; } stack.arr[stack.top++] = val; } else { if (stack.top == 0) { printf("Stack Underflow\n"); continue; } printf("%d\n",stack.arr[--stack.top]); } } } int main() { int n; scanf("%d", &n); getchar(); // Consume newline after number process_stack(n); return 0; }
Test Cases
Test Results
Input
5 push 10 push 20 pop pop pop
Expected Output
20 10 Stack Underflow