#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;
while (1) {
printf("1: push 2: pop 0: end : ");
if (!resp) break;
switch (resp) {
case 1:
push(data);
break;
case 2:
pop();
break;
default:
break;
}
}
for (int 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) {
printf("スタックが空で取り出せませんでした\n"); return 0;
} else {
return stack[--sp];
}
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIFNJWkUgNQppbnQgc3RhY2tbU0laRV07CmludCBzcDsKCnZvaWQgcHVzaChpbnQgdmFsdWUpOwppbnQgcG9wKHZvaWQpOwoKaW50IG1haW4odm9pZCkKewogICAgc3AgPSAwOwogICAgaW50IHJlc3AsIGRhdGE7CgogICAgd2hpbGUgKDEpIHsKICAgICAgICBwcmludGYoIjE6IHB1c2ggIDI6IHBvcCAgMDogZW5kIDogIik7CiAgICAgICAgc2NhbmYoIiVkIiwgJnJlc3ApOwoKICAgICAgICBpZiAoIXJlc3ApIGJyZWFrOwoKICAgICAgICBzd2l0Y2ggKHJlc3ApIHsKICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgIHByaW50ZigicHVzaCA6ICIpOwogICAgICAgICAgICBzY2FuZigiJWQiLCAmZGF0YSk7CiAgICAgICAgICAgIHB1c2goZGF0YSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgcG9wKCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHByaW50Zigi5LiN5q2j44Gq5YWl5Yqb44Gn44GZ44CCXG4iKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHByaW50Zigic3AgPSAlZFxuIiwgc3ApOwogICAgfQoKICAgIHByaW50ZigiXG4iKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3A7IGkrKykgewogICAgICAgIHByaW50Zigic3RhY2tbJWRdID0gJWRcbiIsIGksIHN0YWNrW2ldKTsKICAgIH0KCiAgICByZXR1cm4gMDsKfQoKdm9pZCBwdXNoKGludCB2YWx1ZSkKewogICAgaWYgKHNwID49IFNJWkUpIHsKICAgICAgICBwcmludGYoIuOCueOCv+ODg+OCr+OBjOa6gOadr+OBp+WFpeOCiuOBvuOBm+OCk+OBp+OBl+OBn1xuIik7CiAgICB9IGVsc2UgewogICAgICAgIHN0YWNrW3NwKytdID0gdmFsdWU7CiAgICB9Cn0KCmludCBwb3Aodm9pZCkKewogICAgaWYgKHNwIDw9IDApIHsKICAgICAgICBwcmludGYoIuOCueOCv+ODg+OCr+OBjOepuuOBp+WPluOCiuWHuuOBm+OBvuOBm+OCk+OBp+OBl+OBn1xuIik7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9IGVsc2UgewogICAgICAgIHJldHVybiBzdGFja1stLXNwXTsKICAgIH0KfQo=