Cod sursa(job #3278865)

Utilizator Alexbora13Bora Ioan Alexandru Alexbora13 Data 20 februarie 2025 22:05:30
Problema Evaluarea unei expresii Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <bits/stdc++.h>

using namespace std;

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

const int NMAX = 100000;

long long gr3(); long long gr2(); long long gr1();

char s[NMAX+1], *p;

long long gr3()
{
    int nr = gr2();
    while(*p == '-' || *p == '+')
        if(*p == '-')
            p++, nr -= gr2();
        else
            p++, nr += gr2();
    return nr;
}

long long gr2()
{
    int nr = gr1();
    while(*p == '*' || *p == '/')
        if(*p == '*')
            p++, nr *= gr1();
        else
            p++, nr /= gr1();
    return nr;
}

long long gr1()
{
    int nr = 0;
    if(*p == '(')
        p++, nr = gr3(), p++;
    else
        while(isdigit(*p))
            nr = nr*10 + (*p - '0'),p++;
    return nr;
}

int main()
{
    fin >> s;
    p = s;
    fout << gr3();
    return 0;
}