Cod sursa(job #431187)

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

ifstream i_file("fact.in");
ofstream o_file("fact.out");
int P, N=-1;

int Functie(int n)
{
	int s;
	s = 0;
	int p;
	p = n/5;
	while(p>0)
	{
		s = s+p;
		p=p/5;
	}
	return s;
}
void CautareBinara(int left, int right)
{
	if(right <=left) return;
	int pivot = Functie((left+right)/2);
	if(P<pivot)
	{
		CautareBinara(left, (left+right)/2);
	}
	else if(P==pivot)
	{
		N = (left+right)/2 -  ((left+right)/2)%5;
	}
	else CautareBinara((left+right)/2,right);
}
int main()
{
	i_file>>P;
	CautareBinara(0, 5*P);
	o_file<<N;
	return 0;
}