Pagini recente » Cod sursa (job #586832) | Cod sursa (job #863210) | Cod sursa (job #1813001) | Cod sursa (job #2653972) | Cod sursa (job #2584213)
#include <bits/stdc++.h>
#include <fstream>
using namespace std;
ifstream fin("evaluare.in"); ofstream fout("evaluare.out");
//VARIABLES
string s;
int i, ans;
//FUNCTIONS
int sum();
int product();
int parantheses();
int sum(){
int ans = product();
while (s[i] == '+' || s[i] == '-'){
i++;
if (s[i] == '+') ans += product();
else ans -= product();
}
return ans;
}
int product(){
int ans = parantheses();
while (s[i] == '*' || s[i] == '/'){
i++;
if (s[i] == '*') ans *= parantheses();
else ans /= parantheses();
}
return ans;
}
int parantheses(){
int ans = 0;
if (s[i] == '('){
i++;
ans = sum();
i++;
}
else {
while (i < s.size() && '0' <= s[i] && s[i] <= '9'){
ans *= 10;
ans += s[i] - '0';
i++;
}
}
return ans;
}
//MAIN
int main() {
fin >> s;
fout << sum();
return 0;
}