Pagini recente » Cod sursa (job #1410751) | Cod sursa (job #1023054) | Cod sursa (job #443589) | Cod sursa (job #66846) | Cod sursa (job #603766)
Cod sursa(job #603766)
#include <fstream>
#include <cstring>
#define X1 100001
using namespace std;
ifstream in;
ofstream out;
char text[100001];
int ind=0;
inline int crack1();
inline int crack2();
inline int crack3();
inline int crack1()
{
int ret=crack2();
while(text[ind]=='+'||text[ind]=='-')
{
if(text[ind]=='+')
{
ind++;
ret+=crack2();
}
else
{
ind++;
ret-=crack2();
}
}
return ret;
}
inline int crack2()
{
int ret=crack3();
while(text[ind]=='*'||text[ind]=='/')
{
if(text[ind]=='*')
{
ind++;
ret*=crack3();
}
else
{
ind++;
ret/=crack3();
}
}
return ret;
}
inline int crack3()
{
int ret=0;
if(text[ind]=='(')
{
ind++;
ret=crack1();
ind++;
}
else
while(text[ind]<='9'&&'0'<=text[ind])
ret=ret*10+text[ind++]-'0';
return ret;
}
int main()
{
in.open("evaluare.in");
in>>text;
in.close();
out.open("evaluare.out");
out<<crack1()<<'\n';
out.close();
return 0;
}