#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)
{
int command;
double a, b;
reset();
while(1){
switch(command){
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(a);
break;
case 9:
break;
}
if(command == 9)
break;
}
answer();
return 0;
}
void push(double value)
{
if(!isFull()){
stack[sp] = value;
sp++;
}
}
double pop(void)
{
double value;
if(!isEmpty()){
sp--;
value = stack[sp];
return value;
}
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]); }
}
void reset(void)
{
sp = 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIFNJWkUgMTAKZG91YmxlIHN0YWNrW1NJWkVdOwppbnQgc3A7Cgp2b2lkIHB1c2goZG91YmxlIHZhbHVlKTsKZG91YmxlIHBvcCh2b2lkKTsKaW50IGlzRnVsbCh2b2lkKTsKaW50IGlzRW1wdHkodm9pZCk7CnZvaWQgYW5zd2VyKHZvaWQpOwp2b2lkIHJlc2V0KHZvaWQpOwoKaW50IG1haW4odm9pZCkKewogICAgaW50IGNvbW1hbmQ7CiAgICBkb3VibGUgYSwgYjsKCiAgICByZXNldCgpOwoKICAgIHdoaWxlKDEpewogICAgICAgIHNjYW5mKCIlZCIsICZjb21tYW5kKTsKCiAgICAgICAgc3dpdGNoKGNvbW1hbmQpewogICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICBiID0gcG9wKCk7CiAgICAgICAgICAgICAgICBhID0gcG9wKCk7CiAgICAgICAgICAgICAgICBwdXNoKGEgKyBiKTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgICAgYiA9IHBvcCgpOwogICAgICAgICAgICAgICAgYSA9IHBvcCgpOwogICAgICAgICAgICAgICAgcHVzaChhIC0gYik7CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICAgIGIgPSBwb3AoKTsKICAgICAgICAgICAgICAgIGEgPSBwb3AoKTsKICAgICAgICAgICAgICAgIHB1c2goYSAqIGIpOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgICBiID0gcG9wKCk7CiAgICAgICAgICAgICAgICBhID0gcG9wKCk7CiAgICAgICAgICAgICAgICBwdXNoKGEgLyBiKTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICAgICAgc2NhbmYoIiVsZiIsICZhKTsKICAgICAgICAgICAgICAgIHB1c2goYSk7CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgOToKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KCiAgICAgICAgaWYoY29tbWFuZCA9PSA5KQogICAgICAgICAgICBicmVhazsKICAgIH0KCiAgICBhbnN3ZXIoKTsKCiAgICByZXR1cm4gMDsKfQoKdm9pZCBwdXNoKGRvdWJsZSB2YWx1ZSkKewogICAgaWYoIWlzRnVsbCgpKXsKICAgICAgICBzdGFja1tzcF0gPSB2YWx1ZTsKICAgICAgICBzcCsrOwogICAgICAgIHByaW50ZigiZGF0YTolZlxuIiwgdmFsdWUpOwogICAgfQp9Cgpkb3VibGUgcG9wKHZvaWQpCnsKICAgIGRvdWJsZSB2YWx1ZTsKCiAgICBpZighaXNFbXB0eSgpKXsKICAgICAgICBzcC0tOwogICAgICAgIHZhbHVlID0gc3RhY2tbc3BdOwogICAgICAgIHJldHVybiB2YWx1ZTsKICAgIH0KCiAgICByZXR1cm4gMDsKfQoKaW50IGlzRnVsbCh2b2lkKQp7CiAgICByZXR1cm4gc3AgPT0gU0laRTsKfQoKaW50IGlzRW1wdHkodm9pZCkKewogICAgcmV0dXJuIHNwID09IDA7Cn0KCnZvaWQgYW5zd2VyKHZvaWQpCnsKICAgIGlmKCFpc0VtcHR5KCkpewogICAgICAgIHByaW50ZigiYW5zd2VyOiVmXG4iLCBzdGFja1tzcCAtIDFdKTsKICAgIH0KfQoKdm9pZCByZXNldCh2b2lkKQp7CiAgICBzcCA9IDA7Cn0=