Cod sursa(job #1824712)

Utilizator pibogaBogdan piboga Data 8 decembrie 2016 12:21:33
Problema Evaluarea unei expresii Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.17 kb
#include <fstream>
#include <cstring>

using namespace std;

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

char c[100010],a[100010],k;
int b[100010],vl[260];
int x,y,i,n,d;

bool nr()
{
    if (k>='0' && k<='9') return 1;
    return 0;
}

bool op()
{
    if (k=='+' ||
    k=='-' ||
    k=='*' ||
    k=='/' ||
    k=='(' )
        return 1;
    return 0;
}

int main()
{  // vl['(']=0;
    vl['+']=vl['-']=1;
    vl['*']=vl['/']=2;
    fin.getline (c,100010);
    n=strlen(c+1);
    for (i=1;i<=n;++i)
    {
        k=c[i];
        if (nr())
        {
            d=k-'0';
            ++i;
            while (nr())
            {
                d*=10;
                d+=(k-'0');
            }
            b[++y]=d;
        }

        else

        if (op())
        {
            if (vl[c[i]] < vl[c[i-1]])
            {
                tr(); //--xy
            }
            else
            {
                a[++u]=c[i];
            }
        }

        else
        {
            while (a[y]!='(')
            {
                tr();

            }
        }


        }
    }
    return 0;
}