Pagini recente » Cod sursa (job #1707305) | Cod sursa (job #2286372) | Cod sursa (job #2778103) | Cod sursa (job #2821567) | Cod sursa (job #2982494)
#include <fstream>
#include <vector>
#include <queue>
#include <unordered_map>
#include <unordered_set>
#include <map>
#include <set>
#include <cmath>
#include <algorithm>
#include <functional>
#include <cassert>
using namespace std;
string s;
int p;
int par();
int sum();
int produs();
int sum()
{
int rez=produs();
while(s[p]=='+' || s[p]=='-')
{
if(s[p]=='+')
{
p++;
rez+=produs();
}
else
{
p++;
rez-=produs();
}
}
return rez;
}
int produs()
{
int rez=par();
while(s[p]=='*' || s[p]=='/')
{
if(s[p]=='*')
{
p++;
rez*=par();
}
else
{
p++;
rez/=par();
}
}
return rez;
}
int par()
{
int sign=1;
if(s[p]=='-')
{
sign=-1;
p++;
}
int nr=0;
if(s[p]=='(')
{
p++;
nr=sum();
p++;
return nr*sign;
}
while(isdigit(s[p]))
{
nr=nr*10+s[p]-'0';
p++;
}
return nr*sign;
}
void solve()
{
ifstream cin("evaluare.in");
ofstream cout("evaluare.out");
cin>>s;
s=s+' ';
cout<<sum();
}
main()
{
auto sol=[](bool x)->string
{
if(x)return "Yes";
return "No";
};
int tt=1;
while(tt--)
{
solve();
}
}