Cod sursa(job #3225442)

Utilizator maiaauUngureanu Maia maiaau Data 17 aprilie 2024 16:54:30
Problema Evaluarea unei expresii Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <bits/stdc++.h>
using namespace std;
using pii = pair<int,int>;
#define pb push_back

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

int p;
string s;

int factor(), termen(), suma();

int main()
{
    fin.tie(0); fout.tie(0);
    ios_base::sync_with_stdio(0);
    
    fin >> s;
    fout << suma();
    
    
    return 0;
}

int factor(){
    int ret = 0;
    if (s[p] == '('){
        p++; ret = suma(); p++;
        return ret;
    }
    for (; '0' <= s[p] && s[p] <= '9'; p++) ret = ret * 10 + s[p] - '0';
    return ret;
}
int termen(){
    int ret = factor();
    if (s[p] == '*') { p++; ret *= factor(); }
    else if (s[p] == '/') { p++; ret /= factor(); }
    return ret;
}
int suma(){
    int ret = termen();
    if (s[p] == '+') { p++; ret += termen(); }
    else if (s[p] == '-') { p++; ret -= termen(); }
    return ret;

    return 0;
}


//16:44