Cod sursa(job #1726668)

Utilizator c0mradec0mrade c0mrade Data 8 iulie 2016 17:37:09
Problema Evaluarea unei expresii Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include<bits/stdc++.h>
using namespace std;

char s[100005],*p;

int as();
int asd();
int asdf();

int main()
{
    cin>>s;
    p=s;
    cout<<asdf()<<'\n';
    return 0;
}

int as()
{
    int r=0;
    if(*p=='(')
    {
        p++;
        r=asdf();
        p++;
        return r;
    }
    while(*p>='0' && *p<='9')
        r=r*10+*p-'0',p++;
    return r;
}

int asd()
{
    int r=as();
    while(*p=='*' || *p=='/')
    {
        if(*p=='*') p++,r*=as();
        else p++,r/=as();
    }
    return r;
}

int asdf()
{
    int r=asd();
    while(*p=='+' || *p=='-')
    {
        if(*p=='+') p++,r+=asd();
        else p++,r-=asd();
    }
    return r;
}