#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 cmd;
double a, b, data;
switch(cmd){
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: // data input
push(data);
break;
case 9: // show answer
answer();
return 0;
}
}
}
void push(double value)
{
if(isFull()){
return;
}
stack[sp++] = value;
}
double pop(void)
{
if(isEmpty()){
return 0;
}
return stack[--sp];
}
int isFull(void)
{
return sp >= SIZE;
}
int isEmpty(void)
{
return sp <= 0;
}
void answer(void)
{
printf("answer:%f\n", stack
[sp
- 1]); }
void reset(void)
{
sp = 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIFNJWkUgMTAKZG91YmxlIHN0YWNrW1NJWkVdOwppbnQgc3A7Cgp2b2lkIHB1c2goZG91YmxlIHZhbHVlKTsKZG91YmxlIHBvcCh2b2lkKTsKaW50IGlzRnVsbCh2b2lkKTsKaW50IGlzRW1wdHkodm9pZCk7CnZvaWQgYW5zd2VyKHZvaWQpOwp2b2lkIHJlc2V0KHZvaWQpOwoKaW50IG1haW4odm9pZCkKewogICAgcmVzZXQoKTsKICAgIHdoaWxlKDEpewogICAgICAgIGludCBjbWQ7CiAgICAgICAgZG91YmxlIGEsIGIsIGRhdGE7CiAgICAgICAgcHJpbnRmKCJjb21tYW5kPyAiKTsKICAgICAgICBzY2FuZigiJWQiLCAmY21kKTsKCiAgICAgICAgc3dpdGNoKGNtZCl7CiAgICAgICAgICAgIGNhc2UgMTogLy8gKwogICAgICAgICAgICAgICAgYiA9IHBvcCgpOwogICAgICAgICAgICAgICAgYSA9IHBvcCgpOwogICAgICAgICAgICAgICAgcHVzaChhICsgYik7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAyOiAvLyAtCiAgICAgICAgICAgICAgICBiID0gcG9wKCk7CiAgICAgICAgICAgICAgICBhID0gcG9wKCk7CiAgICAgICAgICAgICAgICBwdXNoKGEgLSBiKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDM6IC8vICoKICAgICAgICAgICAgICAgIGIgPSBwb3AoKTsKICAgICAgICAgICAgICAgIGEgPSBwb3AoKTsKICAgICAgICAgICAgICAgIHB1c2goYSAqIGIpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgNDogLy8gLwogICAgICAgICAgICAgICAgYiA9IHBvcCgpOwogICAgICAgICAgICAgICAgYSA9IHBvcCgpOwogICAgICAgICAgICAgICAgcHVzaChhIC8gYik7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA1OiAvLyBkYXRhIGlucHV0CiAgICAgICAgICAgICAgICBwcmludGYoImRhdGE/ICIpOwogICAgICAgICAgICAgICAgc2NhbmYoIiVsZiIsICZkYXRhKTsKICAgICAgICAgICAgICAgIHB1c2goZGF0YSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA5OiAvLyBzaG93IGFuc3dlcgogICAgICAgICAgICAgICAgYW5zd2VyKCk7CiAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICB9CiAgICB9Cn0Kdm9pZCBwdXNoKGRvdWJsZSB2YWx1ZSkKewogICAgaWYoaXNGdWxsKCkpewogICAgICAgIHByaW50ZigiU3RhY2sgaXMgZnVsbC5cbiIpOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIHN0YWNrW3NwKytdID0gdmFsdWU7CiAgICBwcmludGYoImRhdGE6JWZcbiIsIHZhbHVlKTsKfQoKZG91YmxlIHBvcCh2b2lkKQp7CiAgICBpZihpc0VtcHR5KCkpewogICAgICAgIHByaW50ZigiU3RhY2sgaXMgZW1wdHkuXG4iKTsKICAgICAgICByZXR1cm4gMDsKICAgIH0KICAgIHJldHVybiBzdGFja1stLXNwXTsKfQoKaW50IGlzRnVsbCh2b2lkKQp7CiAgICByZXR1cm4gc3AgPj0gU0laRTsKfQoKaW50IGlzRW1wdHkodm9pZCkKewogICAgcmV0dXJuIHNwIDw9IDA7Cn0KCnZvaWQgYW5zd2VyKHZvaWQpCnsKICAgIHByaW50ZigiYW5zd2VyOiVmXG4iLCBzdGFja1tzcCAtIDFdKTsKfQoKdm9pZCByZXNldCh2b2lkKQp7CiAgICBzcCA9IDA7Cn0KCg==