Cod sursa(job #1784016)

Utilizator OFY4Ahmed Hamza Aydin OFY4 Data 19 octombrie 2016 18:07:26
Problema Evaluarea unei expresii Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.18 kb
#include <fstream>
#include <cstring>

using namespace std;

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

int poz, n;
char s[1000010];

int sayiAl()
{
    int s = 0;
    for(; '0' <= s[poz] && s[poz] <= '9'; ++poz)
    {
        s*= 10;
        s+= s[poz] - '0';
    }

    return s;
}

int coz()
{
    int s = 0, p = 1;

    while(s[poz] != ')')
    {
        if(s[poz] == "(")
        {
            ++poz;
            p*= coz();
        }
        else if(s[poz] == '*')
            ++poz;
        else if(s[poz] == '/')
        {
            ++poz;
            if(s[poz] = '(')
            {
                ++poz;
                p/= coz();
            }
            else p/= sayiAl();
        }
        else if('0' <= s[poz] && s[poz] <= '9')
            p*= sayiAl();
        else if(s[poz] == '+')
        {
            s+= p;
            p = 1;
            ++poz;
        }
        else if(s[poz] == '-')
        {
            s*= p;
            p = -1;
            ++poz;
        }
    }
    s+= p;
    ++poz;

    return s;
}

int main()
{
    in >> s;
    n = strlen(s);
    s[n] = ')';
    out << coz();
}