Cod sursa(job #3284536)

Utilizator PetruApostolApostol Mihnea Petru PetruApostol Data 11 martie 2025 20:08:43
Problema Evaluarea unei expresii Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>
using namespace std;

ifstream cin("evaluare.in");
ofstream cout("evaluare.out");

#define int long long

string s;
int poz;

int semn();
int solve();

int parant(){
	int a=0;
	if(s[poz]=='('){
		poz++;
		a=solve();
		poz++;
	}else{
		while(isdigit(s[poz])){
			a=a*10+(s[poz]-'0');
			poz++;
		}
	}
	return a;
}

int solve(){
	int sum=semn();
	while(s[poz]=='-' || s[poz]=='+'){
		if(s[poz]=='-'){
			poz++;sum-=semn();
		}else{
			poz++;sum+=semn();
		}
	}
	return sum;
}

int semn(){
	int prod=parant();
	while(s[poz]=='*' || s[poz]=='/'){
		if(s[poz]=='*'){
			poz++;prod*=parant();
		}else{
			poz++;prod/=parant();
		}
	}
	return prod;
}



signed main()
{
    cin>>s;
    cout<<solve();
    return 0;
}