Pagini recente » Cod sursa (job #333052) | Cod sursa (job #1212824) | Cod sursa (job #2670042) | Cod sursa (job #1278767) | Cod sursa (job #1824715)
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
char str[100010];
int n, ind = 1;
inline int sum ();
inline int elem ()
{
if (str[ind] == '(')
{
++ind;
int rez = sum ();
++ind;
return rez;
}
int rez = 0;
for (; '0' <= str[ind] && str[ind] <= '9';)
rez = rez * 10 + str[ind++] - 48;
return rez;
}
inline int prod ()
{
int rez = elem ();
for (; str[ind] == '*' || str[ind] == '/';)
if (str[ind] == '*')
++ind,
rez *= elem ();
else if (str[ind] == '/')
++ind,
rez /= elem ();
return rez;
}
inline int sum ()
{
int rez = prod ();
for (; str[ind] == '+' || str[ind] == '-';)
if (str[ind] == '+')
++ind,
rez += prod ();
else if (str[ind] == '-')
++ind,
rez -= prod ();
return rez;
}
int main ()
{
freopen ("evaluare.in", "r", stdin);
freopen ("evaluare.out", "w", stdout);
gets (str + 1);
n = strlen (str + 1);
printf ("%d\n", sum ());
return 0;
}