Pagini recente » Cod sursa (job #49437) | Cod sursa (job #2139208) | Cod sursa (job #834967) | Cod sursa (job #999657) | Cod sursa (job #1809420)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
char s[100001],*p=s;
inline long long termen();
inline long long factor();
inline long long eval(){
long long aux=termen();
while(*p<=100001 && (*p =='+'||*p=='-'))
switch (*p){
case '+':{++p;
aux+=termen ();
break;}
case '-':{++p;
aux-=termen ();
break;}
}
return aux;
}
inline long long termen (){
long long aux=factor();
while(*p<=100001 && (*p=='*' || *p=='/'))
switch (*p){
case '*':{
++p;
aux*=factor ();
break;
}
case '/':{
++p;
aux/=factor ();
break;
}
}
return aux;
}
inline long long factor(){
long long aux=0;
if (*p=='('){
++p;
aux=eval();
++p;
}
else;
while(*p>='0' && *p<='9'){
aux=aux*10+*p-'0';
++p;
}
return aux;
}
int main(){
ios::sync_with_stdio(false);
fin.tie(0);
fin.getline(s,100001);
fout<<eval();
return 0;
}