Cod sursa(job #3301697)

Utilizator Gerald123Ursan George Gerald123 Data 29 iunie 2025 10:56:47
Problema Evaluarea unei expresii Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.1 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");

int i;
char sir[100010];
int adun(),inm();
int paran()
{
    int nr=0,semn=1;
    while(sir[i]=='-')
    {
        semn=-semn;
        i++;
    }
    if(sir[i]=='(')
    {
        i++;
        nr=adun();
        i++;
    }
    while(sir[i]>='0' && sir[i]<='9')
    {
        nr=nr*10+(sir[i]-'0');
        i++;
    }
    return nr*semn;
}

int inm()
{
    int nr=0;
    nr=paran();
    while(sir[i]=='*' || sir[i]=='/')
    {
        if(sir[i]=='*')
        {
            i++;
            nr*=paran();
        }
        else
        {
            i++;
            nr/=paran();
        }
    }
    return nr;
}

int adun()
{
    int nr=0;
    nr=inm();
    while(sir[i]=='+' || sir[i]=='-')
    {
        if(sir[i]=='+')
        {
            i++;
            nr+=inm();
        }
        else
        {
            i++;
            nr-=inm();
        }
    }

    return nr;
}

int main()
{
    fin>>sir;
    cout<<adun();
    return 0;
}