Cod sursa(job #2207053)

Utilizator MEDOcapraBrindea Robert MEDOcapra Data 24 mai 2018 19:58:18
Problema Evaluarea unei expresii Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.98 kb
#include <iostream>
#include <cstring>
#include <fstream>

#define ifnt else

using namespace std;

ifstream fin ("evaluare.in");
ofstream fout ("evaluare.out");

char s[100041];
int n;

int f(char s[], int st, int dr)
{
    for(int i = dr; i >= st; i--)
    {
        if(s[i] == '+')
        {
            return f(s, st, i-1) + f(s, i+1, dr);
        }
        ifnt if(s[i] == '-')
            return f(s, st, i-1) - f(s, i+1, dr);
    }
    for(int i = dr; i >= st; i--)
    {
        if(s[i] == '*')
        {
            return f(s, st, i-1) * f(s, i+1, dr);
        }
        ifnt if(s[i] == '/')
            return f(s, st, i-1) / f(s, i+1, dr);
    }
    int r = 0;
    while(st <= dr)
    {
        if(s[st] >= '0' && s[st] <= '9')
        r = r*10 + (s[st]-'0');
        st++;
    }
    return r;
}

int main()
{

    fin.getline(s, 100041);
    n = strlen(s);
    int rez = f(s, 0, n-1);
    fout << rez;
    return 0;
}