Pagini recente » Cod sursa (job #2516698) | Cod sursa (job #2464117) | Cod sursa (job #278144) | Cod sursa (job #2434073) | Cod sursa (job #2379583)
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define MAX 100010
char s[MAX], *p=s;
ll expr();
ll subexpr();
ll eval(){
ll r = expr();
while(*p=='+' || *p=='-'){
switch(*p){
case '+':
++p;
r+=expr();
break;
case '-':
++p;
r-=expr();
break;
}
}
return r;
}
ll expr(){
ll r = subexpr();
while(*p=='*' || *p == '/'){
switch(*p){
case '*':
++p;
r*=expr();
break;
case '/':
++p;
r/=expr();
break;
}
}
return r;
}
ll subexpr(){
ll r = 0;
if(*p=='('){
++p;
r = eval();
++p;
}
else{
while(*p>='0' && *p<='9'){
r = r * 10 + (*p-'0');
++p;
}
}
return r;
}
int main(){
freopen("evaluare.in", "r", stdin);
freopen("evaluare.out", "w", stdout);
fgets(s, MAX, stdin);
printf("%lld", eval());
}