#include <stdio.h>
#define SIZE 10
double stack[SIZE];
int sp;
void push(double value);
double pop(void);
int isFull(void);
int isEmpty(void);
void answer(void);
void reset(void);
int main(void) {
reset();
while(1){
int select;
double d, val1, val2;
switch(select){
case 1:
val2 = pop();
val1 = pop();
push(val1 + val2);
break;
case 2:
val2 = pop();
val1 = pop();
push(val1 - val2);
break;
case 3:
val2 = pop();
val1 = pop();
push(val1 * val2);
break;
case 4:
val2 = pop();
val1 = pop();
push(val1 / val2);
break;
case 5:
push(d);
break;
case 9:
goto end_loop;
default:
break;
}
}
end_loop:
answer();
return 0;
}
void push(double value) {
if (isFull()) {
return;
}
stack[sp] = value;
sp++;
}
double pop(void) {
if (isEmpty()) {
return 0.0;
}
sp--;
return stack[sp];
}
int isFull(void) {
if (sp >= SIZE) {
return 1;
}
return 0;
}
int isEmpty(void) {
if (sp <= 0) {
return 1;
}
return 0;
}
void answer(void) {
printf("answer:%f\n", stack
[0]); }
void reset(void) {
sp = 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIFNJWkUgMTAKZG91YmxlIHN0YWNrW1NJWkVdOwppbnQgc3A7Cgp2b2lkIHB1c2goZG91YmxlIHZhbHVlKTsKZG91YmxlIHBvcCh2b2lkKTsKaW50IGlzRnVsbCh2b2lkKTsKaW50IGlzRW1wdHkodm9pZCk7CnZvaWQgYW5zd2VyKHZvaWQpOwp2b2lkIHJlc2V0KHZvaWQpOwoKaW50IG1haW4odm9pZCkgewogICAgcmVzZXQoKTsKICAgIAogICAgd2hpbGUoMSl7CiAgICAgICAgaW50IHNlbGVjdDsKICAgICAgICBkb3VibGUgZCwgdmFsMSwgdmFsMjsKICAgICAgICAKICAgICAgICBzY2FuZigiJWQiLCAmc2VsZWN0KTsKICAgICAgICBzd2l0Y2goc2VsZWN0KXsKICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgdmFsMiA9IHBvcCgpOwogICAgICAgICAgICAgICAgdmFsMSA9IHBvcCgpOwogICAgICAgICAgICAgICAgcHVzaCh2YWwxICsgdmFsMik7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgICAgdmFsMiA9IHBvcCgpOwogICAgICAgICAgICAgICAgdmFsMSA9IHBvcCgpOwogICAgICAgICAgICAgICAgcHVzaCh2YWwxIC0gdmFsMik7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgICAgdmFsMiA9IHBvcCgpOwogICAgICAgICAgICAgICAgdmFsMSA9IHBvcCgpOwogICAgICAgICAgICAgICAgcHVzaCh2YWwxICogdmFsMik7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgICAgdmFsMiA9IHBvcCgpOwogICAgICAgICAgICAgICAgdmFsMSA9IHBvcCgpOwogICAgICAgICAgICAgICAgcHVzaCh2YWwxIC8gdmFsMik7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICAgICAgc2NhbmYoIiVsZiIsICZkKTsKICAgICAgICAgICAgICAgIHB1c2goZCk7CiAgICAgICAgICAgICAgICBwcmludGYoImRhdGE6JWZcbiIsIGQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgOToKICAgICAgICAgICAgICAgIGdvdG8gZW5kX2xvb3A7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CiAgICBlbmRfbG9vcDoKCiAgICBhbnN3ZXIoKTsKICAgIHJldHVybiAwOwp9Cgp2b2lkIHB1c2goZG91YmxlIHZhbHVlKSB7CiAgICBpZiAoaXNGdWxsKCkpIHsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBzdGFja1tzcF0gPSB2YWx1ZTsKICAgIHNwKys7Cn0KCmRvdWJsZSBwb3Aodm9pZCkgewogICAgaWYgKGlzRW1wdHkoKSkgewogICAgICAgIHJldHVybiAwLjA7CiAgICB9CiAgICBzcC0tOwogICAgcmV0dXJuIHN0YWNrW3NwXTsKfQoKaW50IGlzRnVsbCh2b2lkKSB7CiAgICBpZiAoc3AgPj0gU0laRSkgewogICAgICAgIHJldHVybiAxOwogICAgfQogICAgcmV0dXJuIDA7Cn0KCmludCBpc0VtcHR5KHZvaWQpIHsKICAgIGlmIChzcCA8PSAwKSB7CiAgICAgICAgcmV0dXJuIDE7CiAgICB9CiAgICByZXR1cm4gMDsKfQoKdm9pZCBhbnN3ZXIodm9pZCkgewogICAgcHJpbnRmKCJhbnN3ZXI6JWZcbiIsIHN0YWNrWzBdKTsKfQoKdm9pZCByZXNldCh2b2lkKSB7CiAgICBzcCA9IDA7Cn0=