#include <stdio.h>
#define SIZE 5
int stack[SIZE];
int sp;
void push(int value);
int pop(void);
int main(void) {
sp = 0;
int resp, data;
int i;
while(1) {
printf("1:push 2:pop 0:end: "); if(!resp) break;
switch(resp) {
case 1:
push(data);
break;
case 2:
break;
}
}
for(i = 0; i < sp; i++) {
printf("stack[%d]=%d\n", i
, stack
[i
]); }
return 0;
}
void push(int value) {
if(sp >= SIZE) {
} else {
stack[sp++] = value;
}
}
int pop(void) {
if(sp <= 0) {
return 0;
} else {
return stack[--sp];
}
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIFNJWkUgNQppbnQgc3RhY2tbU0laRV07CmludCBzcDsKCnZvaWQgcHVzaChpbnQgdmFsdWUpOwppbnQgcG9wKHZvaWQpOwoKaW50IG1haW4odm9pZCkgewogICAgc3AgPSAwOwogICAgaW50IHJlc3AsIGRhdGE7CiAgICBpbnQgaTsKCiAgICB3aGlsZSgxKSB7CiAgICAgICAgcHJpbnRmKCIxOnB1c2ggMjpwb3AgMDplbmQ6ICIpOwogICAgICAgIHNjYW5mKCIlZCIsICZyZXNwKTsKICAgICAgICBpZighcmVzcCkgYnJlYWs7CgogICAgICAgIHN3aXRjaChyZXNwKSB7CiAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgIHByaW50ZigicHVzaDogIik7CiAgICAgICAgICAgICAgICBzY2FuZigiJWQiLCAmZGF0YSk7CiAgICAgICAgICAgICAgICBwdXNoKGRhdGEpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgIHByaW50ZigicG9wID0gJWRcbiIsIHBvcCgpKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICBwcmludGYoInNwPSVkXG4iLCBzcCk7CiAgICB9CgogICAgZm9yKGkgPSAwOyBpIDwgc3A7IGkrKykgewogICAgICAgIHByaW50Zigic3RhY2tbJWRdPSVkXG4iLCBpLCBzdGFja1tpXSk7CiAgICB9CiAgICByZXR1cm4gMDsKfQoKdm9pZCBwdXNoKGludCB2YWx1ZSkgewogICAgaWYoc3AgPj0gU0laRSkgewogICAgICAgIHByaW50ZigiaXBhaWRheW9cbiIpOwogICAgfSBlbHNlIHsKICAgICAgICBzdGFja1tzcCsrXSA9IHZhbHVlOwogICAgfQp9CgppbnQgcG9wKHZvaWQpIHsKICAgIGlmKHNwIDw9IDApIHsKICAgICAgICBwcmludGYoImthcmFkYXlvXG4iKTsKICAgICAgICByZXR1cm4gMDsKICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIHN0YWNrWy0tc3BdOwogICAgfQp9Cgo=