Pagini recente » Cod sursa (job #2350410) | Cod sursa (job #1689081) | Cod sursa (job #2673974) | Cod sursa (job #2674011) | Cod sursa (job #2847702)
#include "bits/stdc++.h"
using namespace std;
#define ll long long
#define forn(i,n) for(int i=0;i<n;i++)
#define all(v) v.begin(), v.end()
#define rall(v) v.rbegin(),v.rend()
#define pb push_back
#define sz(a) (int)a.size()
string s;
int n, i;
int calc();
int prior1();
int prior2();
int calc() {
int ans = prior1();
while(i < n && s[i] == '+' || s[i] == '-') {
if(s[i] == '+') {
++i;
ans += prior1();
} else {
++i;
ans -= prior1();
}
}
return ans;
}
int prior1() {
int ans = prior2();
while(i < n && s[i] == '*' || s[i] == '/') {
if(s[i] == '*') {
++i;
ans *= prior2();
} else {
++i;
ans /= prior2();
}
}
return ans;
}
int prior2() {
int ans = 0;
if(s[i] == '(') {
++i;
ans = calc();
++i;
} else {
while(i < n && s[i] >= '0' && s[i] <= '9') {
ans = ans * 10 + (s[i] - '0');
++i;
}
}
return ans;
}
void solve() {
freopen("evaluare.in", "r", stdin);
freopen("evaluare.out", "w", stdout);
cin >> s;
n = sz(s);
cout << calc();
}
int32_t main() {
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int t = 1;
//cin >> t;
while(t--) {
solve();
}
}