#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 input;
double value;
double a,b;
switch(input){
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 5:
push(value);
break;
case 9:
goto END;
}
}
END:
answer();
return 0;
}
void push(double value)
{
if(!isFull()){
stack[sp] = value;
sp++;
}
}
double pop(void)
{
if(!isEmpty()){
sp--;
return stack[sp];
}
return 0;
}
int isFull(void)
{
return sp == SIZE;
}
int isEmpty(void)
{
return sp == 0;
}
void answer(void)
{
printf("answer:%lf\n",stack
[sp
- 1]); }
void reset(void)
{
sp = 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIFNJWkUgMTAKZG91YmxlIHN0YWNrW1NJWkVdOwppbnQgc3A7Cgp2b2lkIHB1c2goZG91YmxlIHZhbHVlKTsKZG91YmxlIHBvcCh2b2lkKTsKaW50IGlzRnVsbCh2b2lkKTsKaW50IGlzRW1wdHkodm9pZCk7CnZvaWQgYW5zd2VyKHZvaWQpOwp2b2lkIHJlc2V0KHZvaWQpOwoKaW50IG1haW4odm9pZCkKewoJcmVzZXQoKTsKCQoJd2hpbGUoMSl7CgkJaW50IGlucHV0OwoJICAgIGRvdWJsZSB2YWx1ZTsKCSAgICBkb3VibGUgYSxiOwoJICAgIAoJCXNjYW5mKCIlZCIsJmlucHV0KTsKCQkKCQlzd2l0Y2goaW5wdXQpewoJCQljYXNlIDE6CgkJCWIgPSBwb3AoKTsKCQkJYSA9IHBvcCgpOwoJCQlwdXNoKGEgKyBiKTsKCQkJYnJlYWs7CgkJCQoJCQljYXNlIDI6CgkJCWIgPSBwb3AoKTsKCQkJYSA9IHBvcCgpOwoJCQlwdXNoKGEgLSBiKTsKCQkJYnJlYWs7CgkJCQoJCQljYXNlIDM6CgkJCWIgPSBwb3AoKTsKCQkJYSA9IHBvcCgpOwoJCQlwdXNoKGEgKiBiKTsKCQkJYnJlYWs7CgkJCQoJCQljYXNlIDQ6CgkJCWIgPSBwb3AoKTsKCQkJYSA9IHBvcCgpOwoJCQlwdXNoKGEgLyBiKTsKCQkJYnJlYWs7CgkJCQoJCQljYXNlIDU6CgkJCXNjYW5mKCIlbGYiLCZ2YWx1ZSk7CgkJCXByaW50ZigiZGF0YTolbGZcbiIsdmFsdWUpOwoJCQlwdXNoKHZhbHVlKTsKCQkJYnJlYWs7CgkJCQoJCQljYXNlIDk6CgkJCWdvdG8gRU5EOwoJCX0KCX0KRU5EOgogICAgYW5zd2VyKCk7CiAgICAKCXJldHVybiAwOwp9Cgp2b2lkIHB1c2goZG91YmxlIHZhbHVlKQp7CglpZighaXNGdWxsKCkpewoJCXN0YWNrW3NwXSA9IHZhbHVlOwoJCXNwKys7Cgl9Cn0KCmRvdWJsZSBwb3Aodm9pZCkKewoJaWYoIWlzRW1wdHkoKSl7CgkJc3AtLTsKCQlyZXR1cm4gc3RhY2tbc3BdOwoJfQoJcmV0dXJuIDA7Cn0KCmludCBpc0Z1bGwodm9pZCkKewoJcmV0dXJuIHNwID09IFNJWkU7Cn0KCmludCBpc0VtcHR5KHZvaWQpCnsKCXJldHVybiBzcCA9PSAwOwp9Cgp2b2lkIGFuc3dlcih2b2lkKQp7CglwcmludGYoImFuc3dlcjolbGZcbiIsc3RhY2tbc3AgLSAxXSk7Cn0KCnZvaWQgcmVzZXQodm9pZCkKewoJc3AgPSAwOwp9