#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 mode;
double a, b;
switch (mode) {
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:
answer();
return 0;
default:
break;
}
}
return 0;
}
void push(double value) {
if (isFull()) return;
stack[sp] = value;
sp++;
}
double pop(void) {
if (isEmpty()) return 0;
sp--;
return stack[sp];
}
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+CgojZGVmaW5lIFNJWkUgMTAKZG91YmxlIHN0YWNrW1NJWkVdOwppbnQgc3A7Cgp2b2lkIHB1c2goZG91YmxlIHZhbHVlKTsKZG91YmxlIHBvcCh2b2lkKTsKaW50IGlzRnVsbCh2b2lkKTsKaW50IGlzRW1wdHkodm9pZCk7CnZvaWQgYW5zd2VyKHZvaWQpOwp2b2lkIHJlc2V0KHZvaWQpOwoKaW50IG1haW4odm9pZCkgewogICAgcmVzZXQoKTsKICAgIHdoaWxlICgxKSB7CiAgICAgICAgaW50IG1vZGU7CiAgICAgICAgZG91YmxlIGEsIGI7CiAgICAgICAgc2NhbmYoIiVkIiwgJm1vZGUpOwogICAgICAgIHN3aXRjaCAobW9kZSkgewogICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICBiID0gcG9wKCk7CiAgICAgICAgICAgICAgICBhID0gcG9wKCk7CiAgICAgICAgICAgICAgICBwdXNoKGEgKyBiKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgICBiID0gcG9wKCk7CiAgICAgICAgICAgICAgICBhID0gcG9wKCk7CiAgICAgICAgICAgICAgICBwdXNoKGEgLSBiKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgICBiID0gcG9wKCk7CiAgICAgICAgICAgICAgICBhID0gcG9wKCk7CiAgICAgICAgICAgICAgICBwdXNoKGEgKiBiKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgICBiID0gcG9wKCk7CiAgICAgICAgICAgICAgICBhID0gcG9wKCk7CiAgICAgICAgICAgICAgICBwdXNoKGEgLyBiKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgICAgICBzY2FuZigiJWxmIiwgJmEpOwogICAgICAgICAgICAgICAgcHVzaChhKTsKICAgICAgICAgICAgICAgIHByaW50ZigiZGF0YTolZlxuIiwgYSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA5OgogICAgICAgICAgICAgICAgYW5zd2VyKCk7CiAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiAwOwp9Cgp2b2lkIHB1c2goZG91YmxlIHZhbHVlKSB7CiAgICBpZiAoaXNGdWxsKCkpIHJldHVybjsKICAgIHN0YWNrW3NwXSA9IHZhbHVlOwogICAgc3ArKzsKfQoKZG91YmxlIHBvcCh2b2lkKSB7CiAgICBpZiAoaXNFbXB0eSgpKSByZXR1cm4gMDsKICAgIHNwLS07CiAgICByZXR1cm4gc3RhY2tbc3BdOwp9CgppbnQgaXNGdWxsKHZvaWQpIHsKICAgIHJldHVybiBzcCA+PSBTSVpFOwp9CgppbnQgaXNFbXB0eSh2b2lkKSB7CiAgICByZXR1cm4gc3AgPD0gMDsKfQoKdm9pZCBhbnN3ZXIodm9pZCkgewogICAgaWYgKCFpc0VtcHR5KCkpIHsKICAgICAgICBwcmludGYoImFuc3dlcjolZlxuIiwgc3RhY2tbc3AgLSAxXSk7CiAgICB9Cn0KCnZvaWQgcmVzZXQodm9pZCkgewogICAgc3AgPSAwOwp9