Cod sursa(job #602613)
#include <cstdio>
#include <iostream>
#define N 100005
using namespace std;
char a[N];
int i;
int unu();
int doi();
int trei();
int unu()
{
int r = doi();
if (a[i] == '+')
{
++i;
r += doi();
}
else if (a[i] == '-')
{
++i;
r -= doi();
}
return r;
}
int doi()
{
int r = trei();
if (a[i] == '*')
{
++i;
r *= trei();
}
else if (a[i] == '/')
{
++i;
r /= trei();
}
return r;
}
int trei()
{
int r = 0;
if (a[i] == '(')
{
++i;
r = unu();
++i;
}
else
while (isdigit(a[i]))
{
r = r*10 + a[i]-'0';
++i;
}
return r;
}
int main()
{
freopen ("evaluare.in", "r", stdin);
freopen ("evaluare.out", "w", stdout);
fgets (a, N, stdin);
printf ("%d\n", unu());
return 0;
}