Cod sursa(job #3294049)

Utilizator cosminqfDanciu Cosmin Alexandru cosminqf Data 15 aprilie 2025 14:20:00
Problema Evaluarea unei expresii Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.9 kb
#include <bits/stdc++.h>
#define N 100005
using namespace std;
///3549

ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
char s[N],*p=s;
 
long long Termen();
long long Factor();
long long Eval()
{
    long long r=Termen();
    while(*p=='+' || *p=='-')
    switch(*p)
    {
        case '+': ++p; r+=Termen(); break;
        case '-': ++p; r-=Termen(); break;
    }
    return r;
}
 
long long Termen()
{
    long long r=Factor();
    while(*p=='*' || *p=='/')
    switch(*p)
    {
        case '*': ++p; r*=Factor(); break;
        case '/': ++p; r/=Factor(); break;
    }
    return r;
}
long long Factor()
{
    long long r=0;
    if(*p=='('){++p; r=Eval(); ++p;}
    else
    {
        while(*p>='0' && *p <='9')
        {
            r=r*10+*p-'0';
            ++p;
        }
    }
    return r;
}
int main()
{
  fin.get(s,N);
  fout<<Eval();
  return 0;
}