Cod sursa(job #2029246)

Utilizator EricEric Vilcu Eric Data 29 septembrie 2017 18:48:55
Problema Evaluarea unei expresii Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
long i;
char a[100001];
long adun();
long nr()
{
    int n=0;
    if(a[i]=='(')
    {++i;n=adun();++i;return n;}
    while(a[i]>'0'){n=n*10+a[i]-'0';++i;}
    return n;
}
long inmu()
{
    int p=nr();
    while (a[i]=='/' || a[i]=='*'){
        if(a[i]=='/'){++i;p/=nr();}
        else {++i;p*=nr();}
    }
    return p;
}
long adun()
{
    int s=inmu();
    while (a[i]=='-'||a[i]=='+'){
        if(a[i]=='-'){++i;s-=inmu();}
        else{++i;s+=inmu();}
    }
    return s;
}
int main()
{
    f>>a;
    g<<adun();
}