#include<bits/stdc++.h> using namespace std; typedef long long int ll; typedef pair<int,int> PII; const int maxn=1e5+10; ll val(ll x,ll y,char xp){ //自定义运算函数(xp为运算符) if(xp=='*'||xp=='x'||xp=='X')return x*y; if(xp=='/')return x/y; if(xp=='+')return x+y; if(xp=='-')return x-y; return 0; } ll int_string(string s){ //string转int ll su=0; int i=0; int flag=1; if(s[0]=='-'){ flag=-1; i=1; } for(;i<s.size();i++){ su=su*10+(s[i]-'0'); } return su*flag; } string string_int(ll s){ //int转string if(s==0)return "0"; ll x=s; string res; s=abs(s); while(s){ res=char((s%10)+'0')+res; s/=10; } if(x<0)return "-"+res; return res; } vector<string> solution(string s){ //将 "123+234" 化为["123","+","234"] vector<string> num; for(int i=0;i<s.size();){ if(s[i]>='0'&&s[i]<='9'){ string su=""; while(i<s.size()&&s[i]>='0'&&s[i]<='9'){ su+=s[i]; i++; } num.push_back(su); }else{ string su=""; su+=s[i]; num.push_back(su); //cout<<su<<endl; i++; } } return num; } vector<string> get_val(vector<string> num,char xp){ //只计算运算符为xp的 算数表达式 vector<string> st; for(int i=0;i<num.size();i++){ if(num[i][0]==xp&&num[i].size()==1){ ll x=val(int_string(st[st.size()-1]),int_string(num[++i]),xp); st.pop_back(); st.push_back(string_int(x)); }else{ st.push_back(num[i]); } } //for(int i=0;i<st.size();i++)cout<<st[i]<<" ";cout<<endl; return st; } string get_nores(vector<string>num,string priority){ //求表达式值,priority 运算符优先级 (无括号) for(int i=0;i<priority.size();i++){ num=get_val(num,priority[i]); } return num[0]; } string get_res(vector<string>num,string priority){ //求表达式值,priority 为运算符优先级 int n=num.size(); vector<string> ans; stack<int> st; for(int i=0;i<n;i++){ ans.push_back(num[i]); if(num[i][0]=='(')st.push(ans.size()-1); else if(num[i][0]==')'){ int u=st.top();st.pop(); vector<string> x(ans.begin()+u+1,ans.end()-1); string suw = get_nores(x,priority); ans.erase(ans.begin()+u,ans.end()); ans.push_back(suw); } } //for(int i=0;i<ans.size();i++)cout<<ans[i]<<" ";cout<<endl; return get_nores(ans,priority); } ll ShaGua(string s,string priority){//傻瓜式运算,priority运算符优先级(形如【x == / > + == - 】 即为"x/+-" vector<string>num; num = solution(s); return int_string(get_res(num,priority)); } int main(){ ios::sync_with_stdio(0); string s;cin>>s; cout<<ShaGua(s,"x/+-")<<endl; return 0; }