Pagini recente » Cod sursa (job #2333636) | Cod sursa (job #3284918) | Cod sursa (job #1833927) | Cod sursa (job #1310205) | Cod sursa (job #2103616)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
char expr[100060];
char *t=expr;
long long factor();
long long termen();
long long eval(){
long long r=termen();
while (*t=='-'||*t=='+')
{
if (*t=='+')
t++, r+=termen();
else t++, r-=termen();
}
return r;
}
long long termen(){
long long r=factor();
while (*t=='-'||*t=='+')
{
if (*t=='+')
t++, r*=factor();
else t++, r/=factor();
}
return r;
}
long long factor()
{
long long r=0;
if (*t=='(')
{
t++;
r=eval();
t++;
}
else
{
while (*t>='0'&&*t<='9')
{
r=r*10+*t-'0';
t++;
}
}
return r;
}
int main()
{
fin>>expr;
fout<<eval();
return 0;
}