Cod sursa(job #3164394)

Utilizator CraiuAndreiCraiu Andrei David CraiuAndrei Data 3 noiembrie 2023 01:21:11
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.39 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("ecuatii2.in");
ofstream fout("ecuatii2.out");

int x,y;
char s[260],k[260];
double rez;

int main()
{
    int i,nr,semn,egal,n;
    fin.getline(k,3);
    for(i=0;k[i]!=NULL;i++)n=n*10+(k[i]-'0');
    while(n)
    {
    x=y=0;
    egal=semn=1;
    fin.getline(s,255);
    for(i=0;s[i]!=NULL;)
    {
        if(s[i]>='0' && s[i]<='9')
        {
            nr=0;
            while(s[i]>='0' && s[i]<='9')
            {
                nr=nr*10+(s[i]-'0');
                i++;
            }
            if(s[i]=='x')
            {
                x=x+semn*egal*nr;
                i++;
            }
            else
            {
                y=y+semn*egal*nr;;
            }
        }
        else if(s[i]=='x')
        {
            x=x+semn*egal;
            i++;
        }
        else if(s[i]=='-')
        {
            semn=-1;
            i++;
        }
        else if(s[i]=='+')
        {
            semn=1;
            i++;
        }
        else if(s[i]=='=')
        {
            egal=-1;
            if(s[i+1]!='-')semn=1;
            i++;
        }
    }
    cout<<x<<" "<<y;
    if(x==0)
    {
        if(y==0)fout<<"infinit\n";
        else fout<<"imposibil\n";
    }
    else fout<<setprecision(5)<<(double)-1*y/x<<"\n";
    n--;
    cout<<"\n";
    }
    return 0;
}