Cod sursa(job #2875589)

Utilizator stefanliciuLiciu Vasile-Stefan stefanliciu Data 21 martie 2022 23:01:13
Problema Evaluarea unei expresii Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.23 kb
#include <iostream>
#include <cstring>
#include <fstream>
using namespace std;

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

char S[100000];
int i = 0;

long long paranteze();
long long adunari()
{ long long calcul = 0;
    if(i<strlen(S) && S[i] == '(')
    {
        ++i;
        calcul = paranteze();
        ++i;
    }
    else
    { while(S[i] >= '0' && S[i] <= '9')
        {calcul = calcul * 10 + (S[i] - '0');
         ++i;
        }

    }
    return calcul;
}

long long inmultire()
{
    long long calcul = adunari();
    while(i< strlen(S) && (S[i] == '/' || S[i] == '*'))
  {
      if(S[i] == '/')
      {
          ++i;
          calcul /= adunari();
      }
      else{
        ++i;
        calcul *= adunari();
      }

    }
    //cout<<rezultat<<'\n';
    return calcul;
}


long long paranteze()
{ long long calcul = inmultire();
  while(i< strlen(S) && (S[i] == '-' || S[i] == '+'))
  {
      if(S[i] == '-')
      {
          ++i;
          calcul -= inmultire();
      }
      else{
        ++i;
        calcul += inmultire();
      }
  }
  //cout<<rezultat<<'\n';
  return calcul;
}
int main()
{
   fin>>S;
   cout<<paranteze();
    return 0;
}