#include <iostream>
#include <sstream>
#include <stack>
#include <cctype>
using namespace std;
int main () {
istringstream is ("4.5 7.89 + 45.2 2*");
stack<double> operands;
double acc = 0;
while (!is.eof()) {
double operand;
char oper;
if (is >> oper && !isdigit(oper)) {
switch (oper) {
case '+': {
while (!operands.empty()) {
acc += operands.top();
operands.pop();
}
} break;
case '-': {
while (!operands.empty()) {
acc -= operands.top();
operands.pop();
}
} break;
case '*': {
if (acc == 0 && !operands.empty()) {
acc = operands.top();
operands.pop();
}
while (!operands.empty()) {
acc *= operands.top();
operands.pop();
}
} break;
// etc
}
} else {
is.unget();
is >> operand;
operands.push (operand);
}
}
cout << "Result: " << acc << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3N0cmVhbT4KI2luY2x1ZGUgPHN0YWNrPgojaW5jbHVkZSA8Y2N0eXBlPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluICgpIHsKICBpc3RyaW5nc3RyZWFtIGlzICgiNC41IDcuODkgICsgNDUuMiAgMioiKTsKICBzdGFjazxkb3VibGU+IG9wZXJhbmRzOwogIGRvdWJsZSBhY2MgPSAwOwogIAogIHdoaWxlICghaXMuZW9mKCkpIHsKICAgIGRvdWJsZSBvcGVyYW5kOwogICAgY2hhciAgIG9wZXI7CgogICAgaWYgKGlzID4+IG9wZXIgJiYgIWlzZGlnaXQob3BlcikpIHsKICAgICAgICBzd2l0Y2ggKG9wZXIpIHsKICAgICAgICAgIGNhc2UgJysnOiB7CiAgICAgICAgICAgIHdoaWxlICghb3BlcmFuZHMuZW1wdHkoKSkgewogICAgICAgICAgICAgIGFjYyArPSBvcGVyYW5kcy50b3AoKTsgCiAgICAgICAgICAgICAgb3BlcmFuZHMucG9wKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gYnJlYWs7CiAgICAgICAgICBjYXNlICctJzogewogICAgICAgICAgICB3aGlsZSAoIW9wZXJhbmRzLmVtcHR5KCkpIHsKICAgICAgICAgICAgICBhY2MgLT0gb3BlcmFuZHMudG9wKCk7CiAgICAgICAgICAgICAgb3BlcmFuZHMucG9wKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gYnJlYWs7CiAgICAgICAgICBjYXNlICcqJzogewogICAgICAgICAgICBpZiAoYWNjID09IDAgJiYgIW9wZXJhbmRzLmVtcHR5KCkpIHsKICAgICAgICAgICAgICBhY2MgPSBvcGVyYW5kcy50b3AoKTsKICAgICAgICAgICAgICBvcGVyYW5kcy5wb3AoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICB3aGlsZSAoIW9wZXJhbmRzLmVtcHR5KCkpIHsKICAgICAgICAgICAgICBhY2MgKj0gb3BlcmFuZHMudG9wKCk7CiAgICAgICAgICAgICAgb3BlcmFuZHMucG9wKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gYnJlYWs7CiAgICAgICAgICAgLy8gZXRjCiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIGlzLnVuZ2V0KCk7CiAgICAgICAgaXMgPj4gb3BlcmFuZDsKICAgICAgICBvcGVyYW5kcy5wdXNoIChvcGVyYW5kKTsKICAgICAgfQogICAgfQoKICBjb3V0IDw8ICJSZXN1bHQ6ICIgPDwgYWNjIDw8IGVuZGw7Cn0KICAgICAgICAgIAogICAgICAgICAg