Cod sursa(job #3285663)

Utilizator Alexbora13Bora Ioan Alexandru Alexbora13 Data 13 martie 2025 12:19:32
Problema Evaluarea unei expresii Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <bits/stdc++.h>
#define int long long
using namespace std;

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

const int NMAX = 100000;

char s[NMAX+1], *p;

int nr(); int Eval(); int termen();

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

int termen()
{
    int x = nr();
    while(*p == '*' || *p == '/')
    {
        if(*p == '*'){p++;x*=nr();}
        else{p++; x/=nr();}
    }
    return x;
}

int Eval()
{
    int x = termen();
    while(*p == '-' || *p == '+')
    {
        if(*p == '-'){p++; x-=termen();}
        else{p++; x+=termen();}
    }
    return x;
}

signed main()
{
    fin >> s;
    p = s;
    fout << Eval();
    return 0;
}