#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 code;
double a, b;
switch(code){
case 5:
push(a);
break;
case 1:
b = pop();
a = pop();
push(a + b);
break;
case 2:
b = pop();
a = pop();
push(a - b);
break;
case 3:
b = pop();
a = pop();
push(a * b);
break;
case 4:
b = pop();
a = pop();
push(a / b);
break;
case 9:
answer();
return 0;
}
}
}
void reset(void)
{
sp = 0;
}
void push(double value)
{
if(!isFull()){
stack[sp++] = value;
}
}
double pop(void)
{
if(!isEmpty()){
return stack[--sp];
}
return 0;
}
int isFull(void)
{
return sp >= SIZE;
}
int isEmpty(void)
{
return sp <= 0;
}
void answer(void)
{
if(!isEmpty()){
printf("answer:%f\n",stack
[sp
-1]); }
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIFNJWkUgMTAKZG91YmxlIHN0YWNrW1NJWkVdOwppbnQgc3A7Cgp2b2lkIHB1c2goZG91YmxlIHZhbHVlKTsKZG91YmxlIHBvcCh2b2lkKTsKaW50IGlzRnVsbCh2b2lkKTsKaW50IGlzRW1wdHkodm9pZCk7CnZvaWQgYW5zd2VyKHZvaWQpOwp2b2lkIHJlc2V0KHZvaWQpOwoKCmludCBtYWluKHZvaWQpIHsKCXJlc2V0KCk7CgoJd2hpbGUoMSl7CgkJaW50IGNvZGU7CgkJZG91YmxlIGEsIGI7CgkJc2NhbmYoIiVkIiwgJmNvZGUpOwoKCgkJc3dpdGNoKGNvZGUpewoJCQljYXNlIDU6CgkJCQlzY2FuZigiJWxmIiwmYSk7CgkJCQlwdXNoKGEpOwoJCQkJcHJpbnRmKCJkYXRhOiVmXG4iLCBhKTsKCQkJCWJyZWFrOwoKCQkJY2FzZSAxOgoJCQkJYiA9IHBvcCgpOwogICAgICAgICAgICAgICAgYSA9IHBvcCgpOwogICAgICAgICAgICAgICAgcHVzaChhICsgYik7CiAgICAgICAgICAgICAgICBicmVhazsKCgkJCWNhc2UgMjoKCQkJCWIgPSBwb3AoKTsKICAgICAgICAgICAgICAgIGEgPSBwb3AoKTsKICAgICAgICAgICAgICAgIHB1c2goYSAtIGIpOwogICAgICAgICAgICAgICAgYnJlYWs7CgoJCQljYXNlIDM6CiAgICAgICAgICAgICAgICBiID0gcG9wKCk7CiAgICAgICAgICAgICAgICBhID0gcG9wKCk7CiAgICAgICAgICAgICAgICBwdXNoKGEgKiBiKTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKCQkJY2FzZSA0OgogICAgICAgICAgICAgICAgYiA9IHBvcCgpOwogICAgICAgICAgICAgICAgYSA9IHBvcCgpOwogICAgICAgICAgICAgICAgcHVzaChhIC8gYik7CiAgICAgICAgICAgICAgICBicmVhazsKCgkJCWNhc2UgOTogCiAgICAgICAgICAgICAgICBhbnN3ZXIoKTsKICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgIH0KCX0KfQoKCgp2b2lkIHJlc2V0KHZvaWQpCnsKCXNwID0gMDsKfQoKdm9pZCBwdXNoKGRvdWJsZSB2YWx1ZSkKewoJaWYoIWlzRnVsbCgpKXsKCQlzdGFja1tzcCsrXSA9IHZhbHVlOwoJfQp9Cgpkb3VibGUgcG9wKHZvaWQpCnsKCWlmKCFpc0VtcHR5KCkpewoJCXJldHVybiBzdGFja1stLXNwXTsKCX0KCXJldHVybiAwOwp9CgppbnQgaXNGdWxsKHZvaWQpCnsKCXJldHVybiBzcCA+PSBTSVpFOwp9CgppbnQgaXNFbXB0eSh2b2lkKQp7CglyZXR1cm4gc3AgPD0gMDsKfQoKdm9pZCBhbnN3ZXIodm9pZCkKewoJaWYoIWlzRW1wdHkoKSl7CgkJcHJpbnRmKCJhbnN3ZXI6JWZcbiIsc3RhY2tbc3AtMV0pOwoJfQp9