Cod sursa(job #431220)

Utilizator etherealCatalin Badea ethereal Data 31 martie 2010 19:40:18
Problema Factorial Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>
using namespace std;

ifstream i_file("fact.in");
ofstream o_file("fact.out");
static int P, N=-1;
static int s;
static int p;
int Functie(int n)
{
	
	s = 0;
	
	p = n/5;
	while(p>0)
	{
		s = s+p;
		p=p/5;
	}
	return s;
}
static int median;
static int pivot;
void CautareBinara(int left, int right)
{
	
	if(right > left) 
	{
	 	median = (left+right)/2;
		pivot = Functie(median);
		if(P<pivot)
		{
			CautareBinara(left, median);
		}
		else if(P==pivot)
		{
			N = median -  median%5;
		}
		else CautareBinara((left+right)/2,right);
	}
	
}
int main()
{
	i_file>>P;
	if(P==0)
	{
		o_file<<1;
		return 0;
	}
	if(P==1)
	{	
		o_file<<5;
		return 0;
	}
	CautareBinara(10, 5*P);
	o_file<<N;
	return 0;
}