Cod sursa(job #3210249)

Utilizator StefanIordache2007Iordache Stefan-Cristian StefanIordache2007 Data 5 martie 2024 17:42:21
Problema Evaluarea unei expresii Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.99 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("betisoare.in");
ofstream g("betisoare.out");
char s[1000005],*p;
unsigned long long n,cnt;
unsigned long long eval();
unsigned long long termen();
unsigned long long factor()
{
    unsigned long long rez=0;
    if(*p=='(')
    {
        p++;
        rez=eval();
        p++;
    }
    else
        while(*p=='I')
    {
        rez=rez+1;
        p++;
    }
    return rez;
}
unsigned long long termen()
{
    unsigned long long rez=factor();
    while(*p=='*')
        if(*p=='*')
        {
            p++;
            rez*=factor();
        }
        return rez;
}
unsigned long long eval()
{
    unsigned long long rez=termen();
    while(*p=='+')
        if(*p=='+')
        {
            p++;
            rez+=termen();
        }
        return rez;
}
int main()
{
    f>>n;
    f.get();
    for(unsigned long long i=1;i<=n;i++)
    {
    f.getline(s, 1000005);
    cnt=strlen(s);
    s[cnt]=NULL;
    p=s;
    g<<eval()<<'\n';}
    return 0;
}