Cod sursa(job #387904)

Utilizator GotenAmza Catalin Goten Data 28 ianuarie 2010 18:36:13
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.53 kb
#include<fstream.h>

int n,ldr,lst,cdr,cst,nr,semn,L,i,j;
char s[300];

int main()
{
	ifstream f("ecuatii2.in");
	ofstream g("ecuatii2.out");
	f>>n;
	f.getline(s,300);
	for(j=1;j<=n;j++)
	{
		lst=ldr=cst=cdr=0;
		f.getline(s,300);
		L=0;
		while(s[L]!=61)
			L++;
		i=0;
		semn=0;
		while(i<L)
			if(s[i]==43||s[i]==45)
			{
				if(s[i]==43)
					semn=0;
				else
					semn=1;
				i++;
			}
			else
				if(s[i]==120)
				{
					if(semn)
						cst--;
					else
						cst++;
					i++;
				}
				else
				{
					nr=0;
					while(47<=s[i]&&s[i]<=57)
					{
						nr=nr*10+s[i]-48;
						i++;
					}
					if(s[i]!=120)
						if(semn)
							lst-=nr;
						else
							lst+=nr;
					else
					{
						if(semn)
							cst-=nr;
						else
							cst+=nr;
						i++;
					}
				}
		i=L+1;
		semn=0;
		L=strlen(s);
		while(i<L)
			if(s[i]==43||s[i]==45)
			{
				if(s[i]==43)
					semn=0;
				else
					semn=1;
				i++;
			}
			else
				if(s[i]==120)
				{
					if(semn)
						cdr--;
					else
						cdr++;
					i++;
				}
				else
				{
					nr=0;
					while(47<=s[i]&&s[i]<=57)
					{
						nr=nr*10+s[i]-48;
						i++;
					}
					if(s[i]!=120)
						if(semn)
							ldr-=nr;
						else
							ldr+=nr;
					else
					{
						if(semn)
							cdr-=nr;
						else
							cdr+=nr;
						i++;
					}
				}
		cst-=cdr;
		ldr-=lst;
		if(!cst&&!ldr)
			g<<"infinit\n";
		else
			if(!cst)
				g<<"imposibil\n";
			else
				g<<(float)ldr/cst<<'\n';
	}
	return 0;
}