Cod sursa(job #195903)
#include <cstdio>
#include <cstring>
const char FILEIN[] = "evaluare.in";
const char FILEOUT[] = "evaluare.out";
const int MAXN = 100005;
int N;
char s[MAXN];
int p;
int Expresie();
int Numar() {
int ret = 0;
if (s[p] == '(')
++p, ret = Expresie(), ++p;
else
while (p < N && (s[p] >= '0' && s[p] <= '9'))
ret = ret*10 + s[p++]-'0';
return ret;
}
int Factor() {
int ret = Numar();
while (p < N && (s[p] == '*' || s[p] == '/'))
s[p++] == '*' ? ret *= Numar() : ret /= Numar();
return ret;
}
int Expresie() {
int ret = Factor();
while (p < N && (s[p] == '+' || s[p] == '-'))
s[p++] == '+' ? ret += Factor() : ret -= Factor();
return ret;
}
int main() {
freopen(FILEIN, "r", stdin);
freopen(FILEOUT, "w", stdout);
scanf("%s", s);
N = strlen(s);
printf("%d\n", Expresie());
}