#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 resp,a, b, data;
reset();
while (1) {
if(resp==9) break;
switch (resp) {
case 1:
if (sp >= 2) {
b = pop();
a = pop();
push(a + b);
}
break;
case 2:
if (sp >= 2) {
b = pop();
a = pop();
push(a - b);
}
break;
case 3:
if (sp >= 2) {
b = pop();
a = pop();
push(a * b);
}
break;
case 4:
if (sp >= 2) {
b = pop();
a = pop();
if (b != 0) {
push(a / b);
} else {
push(a); push(b);
}
}
break;
case 5:
push(data);
break;
}
}
answer();
return 0;
}
void push(double value)
{
if (isFull()) {
} else {
stack[sp++] = value;
}
}
double pop(void)
{
if (isEmpty()) {
return 0;
} else {
return stack[--sp];
}
}
int isFull(void)
{
if(sp>=SIZE){
return 1;
}
else{
return 0;
}
}
int isEmpty(void)
{
if(sp<=0){
return 1;
}
else{
return 0;
}
}
void answer(void)
{
if(!isEmpty()){
printf("data: %f\n", stack
[sp
- 1]); }
}
void reset(void)
{
sp = 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNkZWZpbmUgU0laRSAxMAoKZG91YmxlIHN0YWNrW1NJWkVdOwppbnQgc3A7Cgp2b2lkIHB1c2goZG91YmxlIHZhbHVlKTsKZG91YmxlIHBvcCh2b2lkKTsKaW50IGlzRnVsbCh2b2lkKTsKaW50IGlzRW1wdHkodm9pZCk7CnZvaWQgYW5zd2VyKHZvaWQpOwp2b2lkIHJlc2V0KHZvaWQpOwoKaW50IG1haW4odm9pZCkKewogICAgaW50IHJlc3AsYSwgYiwgZGF0YTsKCiAgICByZXNldCgpOwoKICAgIHdoaWxlICgxKSB7CiAgICAgICAgc2NhbmYoIiVkIiwgJnJlc3ApOwogaWYocmVzcD09OSkgYnJlYWs7CiAgICAgICAgc3dpdGNoIChyZXNwKSB7CiAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgIGlmIChzcCA+PSAyKSB7CiAgICAgICAgICAgICAgICAgICAgYiA9IHBvcCgpOwogICAgICAgICAgICAgICAgICAgIGEgPSBwb3AoKTsKICAgICAgICAgICAgICAgICAgICBwdXNoKGEgKyBiKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgICBpZiAoc3AgPj0gMikgewogICAgICAgICAgICAgICAgICAgIGIgPSBwb3AoKTsKICAgICAgICAgICAgICAgICAgICBhID0gcG9wKCk7CiAgICAgICAgICAgICAgICAgICAgcHVzaChhIC0gYik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgICAgaWYgKHNwID49IDIpIHsKICAgICAgICAgICAgICAgICAgICBiID0gcG9wKCk7CiAgICAgICAgICAgICAgICAgICAgYSA9IHBvcCgpOwogICAgICAgICAgICAgICAgICAgIHB1c2goYSAqIGIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICAgIGlmIChzcCA+PSAyKSB7CiAgICAgICAgICAgICAgICAgICAgYiA9IHBvcCgpOwogICAgICAgICAgICAgICAgICAgIGEgPSBwb3AoKTsKICAgICAgICAgICAgICAgICAgICBpZiAoYiAhPSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goYSAvIGIpOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goYSk7IHB1c2goYik7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgICAgIHNjYW5mKCIlZCIsICZkYXRhKTsKICAgICAgICAgICAgICAgIHB1c2goZGF0YSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CiAgICBhbnN3ZXIoKTsKICAgIHJldHVybiAwOwp9Cgp2b2lkIHB1c2goZG91YmxlIHZhbHVlKQp7CiAgICBpZiAoaXNGdWxsKCkpIHsKICAgICAgICBwcmludGYoIuOCueOCv+ODg+OCr+OBr+a6gOadr1xuIik7CiAgICB9IGVsc2UgewogICAgICAgIHN0YWNrW3NwKytdID0gdmFsdWU7CiAgICB9Cn0KCmRvdWJsZSBwb3Aodm9pZCkKewogICAgaWYgKGlzRW1wdHkoKSkgewogICAgICAgIHByaW50Zigi44K544K/44OD44Kv44Gv56m6XG4iKTsKICAgICAgICByZXR1cm4gMDsKICAgIH0gZWxzZSB7CiAgICAgICAgIHJldHVybiBzdGFja1stLXNwXTsKICAgIH0KfQoKaW50IGlzRnVsbCh2b2lkKQp7CiAgIGlmKHNwPj1TSVpFKXsKICAgCXJldHVybiAxOwogICB9CiAgIGVsc2V7CiAgIAlyZXR1cm4gMDsKICAgfQp9CgppbnQgaXNFbXB0eSh2b2lkKQp7CiAgICBpZihzcDw9MCl7CiAgICAJcmV0dXJuIDE7CiAgICB9CiAgICBlbHNlewogICAgCXJldHVybiAwOwogICAgfQp9Cgp2b2lkIGFuc3dlcih2b2lkKQp7CglpZighaXNFbXB0eSgpKXsKICAgICAgICBwcmludGYoImRhdGE6ICVmXG4iLCBzdGFja1tzcCAtIDFdKTsKCX0KCWVsc2UgcHJpbnRmKCLjgrnjgr/jg4Pjgq/jga/nqbpcbiIpOwp9Cgp2b2lkIHJlc2V0KHZvaWQpCnsKICAgIHNwID0gMDsKfQ==