Pagini recente » Cod sursa (job #36952) | Cod sursa (job #742257) | Cod sursa (job #910294) | Cod sursa (job #1819255) | Cod sursa (job #1224644)
#include <cstdio>
#include <cstring>
using namespace std;
int nr,n;
char v[100010];
int getnumber()
{
int s=0;
while(nr<n && v[nr]>='0' && v[nr]<='9') s=s*10+v[nr++]-'0';
return s;
}
int paranteza()
{
int sol=0,s=0;
while(nr<n && v[nr]!=')')
{
s=1;
if(v[nr]=='-') {s=-1;nr++;}
else if(v[nr]=='+') nr++;
if(v[nr]=='(') {nr++;s*=paranteza();}
else s*=getnumber();
while(nr<n && v[nr]!=')' && v[nr]!='+' && v[nr]!='-')
if(v[nr++]=='*')
if(v[nr]=='(') {nr++;s*=paranteza();}
else s*=getnumber();
else
if(v[nr]=='(') {nr++;s/=paranteza();}
else s/=getnumber();
sol+=s;
}
nr++;
return sol;
}
int main()
{
freopen("evaluare.in", "r", stdin);
freopen("evaluare.out", "w", stdout);
scanf("%s",v);
n=strlen(v);
printf("%d",paranteza());
return 0;
}