Cod sursa(job #591789)

Utilizator Agent008Cristi Poputea Agent008 Data 25 mai 2011 16:29:36
Problema Factorial Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include<iostream.h>
#include<fstream.h>
#include<math.h>
fstream f("fact.in",ios::in), g("fact.out",ios::out);
long long contor,i,ok,ur=1,p,b,t;
int main()
{
	long long k,v,pu=5,l,o,ok2=0;
	f>>k;
	if(k==0)
		g<<i;
	else
	{while(contor<k && !ok)
		{
			i+=pu;
			contor+=ur;
			if(i==pu*5)
			{	contor++;
				ur=contor;
				pu=pu*5;
			
			}
			if(contor>k)
				ok=1;
		}
	if(contor!=k)
	{	p=pu/5;
		l=ur;v=pu;b=(ur-1)/5;o=1,contor=0;
		while(ok && v<i && ok2==0)
		{
			v+=p;
			l+=b;
			if(b==1)
			{	o++;
				if(o==6)
					ok2=1;
			}
			if(l>k)
			{	l-=b;v-=p;b=(b-1)/5;p=p/5;o=1;}
			if(ok2==0)
				if(i==v)
				{	if(l==contor && l==k)
					{	ok=0;t=1;}
				}
				else
					if(l==k)
					{	ok=0;t=1;}	
		}
		if(o==1 && t==0)
		ok2=1;
		if(ok2==1)
		{	g<<"-1";cout<<"-1";}
		else
		{	g<<v;cout<<v;}
	}	
	else
	{	ok2=0;
		if(ok2==1)
		{	g<<"-1";cout<<"-1";}
		else
		{	g<<i;cout<<i;}
	}
	}
	return 0;
}