Cod sursa(job #629120)

Utilizator ContraPunctContrapunct ContraPunct Data 2 noiembrie 2011 17:43:23
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include<cstdio>
#include<fstream>
#include<vector>
#include <algorithm>
#define Nmax 804
using namespace std;
long long n,p;
void ReadData()
{
	ifstream fin("fact.in");
	fin>>p;
	//sort(bat.begin(),bat.end());
}
long long nr_zero(long a)
{
	int nr=0;
	while( a!=0 )
	{
		nr += a/5;
		a/=5;
	}
	return nr;
}
void Sol()
{
	ofstream fout("fact.out");
	long long  stg,drp,m;
	long long nr0;
	stg = 1;
	drp = 5*p;
	while(stg<=drp)
	{
		m = (drp+stg)/2;
		nr0 = nr_zero(m);
		if( p > nr0 ) 
		{			
			stg = m+1;
		}
		else
			if(p == nr0)
			{
				if(m%5 == 0)
				{ 
					fout<<m<<"\n";
					return;
				}
				else 
				{
					m=m-m%5;
					fout<<m<<"\n";
					return;
				}
				
			}
				else
				{
					drp = m-1;
				}	
	}
	fout<<"-1\n";
}
			
int main()
{	
	ReadData();
	if( p == 0 )
	{
		ofstream fout("fact.out");
		fout<<"1\n";
	}
	else
		Sol();
	return 0;
}