Cod sursa(job #1824156)

Utilizator AnduB08Boldisor Andu AnduB08 Data 7 decembrie 2016 14:15:50
Problema A+B Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.68 kb
#include <fstream>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
int
int main()
{
    f.getline(c+1,100010);
    c[0]='(';
    n=strlen(c+1);
    c[n+1]=')';
    for(i=1;i<=n;++i)
    {
        if(c[i]==')')
        {
            if(st[vf]=='+')
            {
                vf--;

            }
        }
        else
        {
            if(c[i]=='+')
            {
                if(st1[vf]=='*' || st1[vf]=='/')
                {
                    x=st2[vff-1];
                    y=st2[vff];
                    vff-=2;
                    if(st1[vf]=='*')
                        st2[++vff]=x*y;
                    else
                        st2[++vff]=x/y;
                    vf--;
                }
                st1[++vf]='+';
            }
            if(c[i]=='-')
            {
                if(st1[vf]=='*' || st1[vf]=='/')
                {
                    x=st2[vff-1];
                    y=st2[vff];
                    vff-=2;
                    if(st1[vf]=='*')
                        st2[++vff]=x*y;
                    else
                        st2[++vff]=x/y;
                    vf--;
                }
                st1[++vf1]='-';
            }
            if(c[i]=='*')
                st1[++vf1]='*';
            if(c[i]=='/')
                st1[++vf1]='/';
            if(c[i]-'0'>=0 && c[i]-'0'<10)
            {
                nr=0;
                while(c[i]-'0'>=0 && c[i]-'0'<10)
                {
                    nr=nr*10+c[i]-'0';
                    ++i;
                }
                st2[++vff]=nr;
            }
        }
    }
    return 0;
}