Cod sursa(job #2072610)

Utilizator mihai.alphamihai craciun mihai.alpha Data 21 noiembrie 2017 23:27:43
Problema Evaluarea unei expresii Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <bits/stdc++.h>

using namespace std;

char *s = new char[100005];

int e(int l)  {
    int rez = 0;
    if(l == 0)  {
        rez = e(1);
        while(*s == '+' || *s == '-')  {
            if(*s == '+')
                s++, rez += e(1);
            else
                s++, rez -= e(1);
        }
    }
    else if(l == 1) {
        rez = e(2);
        while(*s == '*' || *s == '/')
            if(*s == '*')
                s++, rez *= e(2);
            else
                s++, rez /= e(2);
    }
    else if(*s == '(') {
        s++;
        rez = e(0);
        s++;
    }
    else  {
        while(isdigit(*s))
            rez = rez * 10 + *s - '0', s++;
    }
    return rez;
}

int main()  {
    freopen("evaluare.in", "r", stdin);
    freopen("evaluare.in", "w", stdout);
    cin >> s;
    cout << e(0);
    return 0;
}