#include <limits.h>
#include <iostream>
using namespace std;
struct list { int data; list* next; };
list* cons(int n, list* p) {
return new list({n,p});
}
struct Stack {
list* l;
int empty() { return l==NULL; } // 스택이 비었는지 검사
void push(int n) { l = cons(n,l); }
int pop() {
if ( empty() ) {
cout <<"stack empty" <<endl;
return INT_MIN;
}
int n = l->data;
l = l->next;
return n;
}
};
int main() {
// your code goes here
Stack s = { NULL };
s.pop();
s.push(1);
s.push(2);
s.push(3);
s.push(4);
int n1 = s.pop();
int n2 = s.pop();
cout <<n1 <<", " <<n2 <<endl;
return 0;
}
I2luY2x1ZGUgPGxpbWl0cy5oPgojaW5jbHVkZSA8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgbGlzdCB7IGludCBkYXRhOyBsaXN0KiBuZXh0OyB9OwpsaXN0KiBjb25zKGludCBuLCBsaXN0KiBwKSB7CglyZXR1cm4gbmV3IGxpc3Qoe24scH0pOwp9CgpzdHJ1Y3QgU3RhY2sgewoJbGlzdCogbDsKCWludCBlbXB0eSgpIHsgcmV0dXJuIGw9PU5VTEw7IH0gLy8g7Iqk7YOd7J20IOu5hOyXiOuKlOyngCDqsoDsgqwKCXZvaWQgcHVzaChpbnQgbikgeyBsID0gY29ucyhuLGwpOyB9CglpbnQgcG9wKCkgewoJCWlmICggZW1wdHkoKSApIHsKCQkJY291dCA8PCJzdGFjayBlbXB0eSIgPDxlbmRsOwoJCQlyZXR1cm4gSU5UX01JTjsKCQl9CgkJaW50IG4gPSBsLT5kYXRhOwoJCWwgPSBsLT5uZXh0OwoJCXJldHVybiBuOwoJfQp9OwoKCmludCBtYWluKCkgewoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJU3RhY2sgcyA9IHsgTlVMTCB9OwoJcy5wb3AoKTsKCXMucHVzaCgxKTsKCXMucHVzaCgyKTsKCXMucHVzaCgzKTsKCXMucHVzaCg0KTsKCWludCBuMSA9IHMucG9wKCk7CglpbnQgbjIgPSBzLnBvcCgpOwoJY291dCA8PG4xIDw8IiwgIiA8PG4yIDw8ZW5kbDsKCQoJcmV0dXJuIDA7Cn0=