Pagini recente » Istoria paginii runda/testround/clasament | Cod sursa (job #1406565) | Cod sursa (job #1401783) | Cod sursa (job #914477)
Cod sursa(job #914477)
#include<cstdio>
#include<cstring>
#define max 100010
using namespace std;
char s[max],*p=s;
int grad1();
int grad2();
int numar();
int grad1()
{
int r=grad2();
while (*p=='+' || *p=='-')
if (*p=='+') ++p,r+=grad2();else ++p,r-=grad2();
return r;
}
int grad2()
{
int r=numar();
while (*p=='*' || *p=='/')
if (*p=='*') ++p,r*=numar();else ++p,r/=numar();
return r;
}
int numar()
{
int r=0;
if (*p=='(') ++p,r=grad1(),++p;else
while (*p>='0' && *p<='9')
r=r*10+(*p-'0'),++p;
return r;
}
int main()
{
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
gets(s);
printf("%d\n",grad1());
return 0;
}