Cod sursa(job #2371513)

Utilizator blackbear26Denisa Lepadatu blackbear26 Data 6 martie 2019 18:01:04
Problema Evaluarea unei expresii Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.99 kb
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("pergament.in");
char t[200];
int c,a,b,E;
int main()
{
    fin>>c;fin.get();
    fin.getline(t,200);
    fin>>a>>b>>E;
    int cx=0,cy=0,cz=0,ct=0,tl=0,nr=0,s=-1,i=1;
    if(t[0]=='-')s=0; else s=1;
    for(int i=1;i<strlen(t);i++)
    {   cout<<nr<<" ";
        while(isdigit(t[i])) {nr=nr*10+(int)t[i]-48;i++;}
        if(t[i]=='x'||t[i]=='y'||t[i]=='z'||t[i]=='t')
            if(t[i-1]=='-')nr=1; else if(t[i-1]=='+') nr=-1;
        if(s==0) nr=-nr;

        if(t[i]=='-')s=0; else if(t[i]=='+')s=1;

        if(t[i]!='x'&&t[i]!='y'&&t[i]!='z'&&t[i]!='t')
            {if(s==0)tl=tl-nr; else tl=tl+nr;cout<<" => tl = "<<tl<<endl;}else

        if(t[i]=='x')cx=cx+nr;else if(t[i]=='y')cy=cy+nr;else
        if(t[i]=='z')cz=cz+nr;else if(t[i]=='t')ct=ct+nr;

        nr=0;
    }
    cout<<cx<<" "<<cy<<" "<<cz<<" "<<ct<<" "<<tl<<endl;
    if(c==1) cout<<cx+cy+cz+ct+tl;

    return 0;
}