Cod sursa(job #2055326)

Utilizator zsraduZamfir Radu zsradu Data 3 noiembrie 2017 01:22:59
Problema Evaluarea unei expresii Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.05 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
char c[100003],*p=c;
long long termen();///produsul
long long numar();///un numar
long long suma()///suma tuturor
{
    long long r=termen();
    while(*p=='+' || *p=='-')
    {if(*p=='+')
    {
        p++;
        r+=termen();
    }
    else if(*p=='-')
    {
        p++;
        r-=termen();
    }}
    return r;
}
long long termen()
{
    long long r=numar();
    while(*p=='*' || *p=='/')
    {if(*p=='*')
    {
        p++;
        r*=numar();
    }
    else if(*p=='/')
    {
        p++;
        r/=numar();
    }}
    return r;
}
long long numar()
{
    int r=0;
    while(*p=='(' || (*p>='0' && *p<='9'))
    {if(*p=='(')
    {
        p++;
        r=suma();
        p++;
    }
    else while(*p>='0' && *p<='9')
    {
        r=r*10+*p-'0';
        p++;
    }}
    return r;
}
int main()
{
    int lc=0;
    while(f>>noskipws>>c[lc])if(c[lc]!=' ')lc++;
    g<<suma();
    return 0;
}