#include #include #include using namespace std; enum OP{ ADD=10000, SUB=10001, LKK=10002, }; void SetOP(stack&St,char op) { switch(op){ case '+': St.push(ADD); break; case '-': St.push(SUB); break; case '(': St.push(LKK); break; } } void Calcute(stack&St,int data1,int op,int data2) { switch(op){ case ADD: St.push(data1+data2); break; case SUB: St.push(data1-data2); break; } } int main(int argc, char* argv[]) { string S; cin>>S; char ch; int op; int data1,data2; stack St; int i; for (i=0;i='0' && ch<='9')){ if (St.empty()){ St.push(ch-'0'); continue; } op=St.top(); if (op==ADD || op==SUB){ St.pop(); data1=St.top(); St.pop(); data2=ch-'0'; Calcute(St,data1,op,data2); }else{ St.push(ch-'0'); } } } while (!St.empty()){ data2=St.top(); St.pop(); if (St.empty()){ cout<