#include <stdio.h> #include<stdlib.h> struct stack { int top; int *array; }; struct stack* create(int n) { struct stack *s = (struct stack*)malloc(n*sizeof(struct stack)); s->top = -1; s->array = (int*)malloc(n*sizeof(int)); return s; } struct stack* push(struct stack* s, int x) { s->array[++s->top] = x; return s; } struct stack* pop(struct stack* s) { if(s->top == -1) { printf("EMPTY\n"); return s; } s->top--; return s;// s->array[s->top--]; } void min(struct stack* s) { if(s->top == -1) { printf("EMPTY\n"); return ; } int min = s->array[0]; for (int i = 1; i <= s->top; ++i) { //printf("%d %d ",min,s->array[i]); if(s->array[i]<min) { min = s->array[i]; } } printf("%d\n",min); } int main() { int n; scanf("%d",&n); struct stack *s = NULL;s = create(n); for (int i = 0; i < n; ++i) { char st[7]; scanf("%s",&st); if(st[1] == 'U') { int x; scanf("%d",&x); s = push(s,x); } else if(st[1] == 'O') { s = pop(s); } else { min(s); } } }