Cod sursa(job #571746)

Utilizator alexdmotocMotoc Alexandru alexdmotoc Data 4 aprilie 2011 19:07:57
Problema Factorial Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <iostream>
#include <fstream>
using namespace std;

#define MAX 4000000005

long long P , st , dr , mid , cpy , sol;
bool ok;

int main()
{
	ifstream f ("fact.in");
	ofstream g ("fact.out");
	
	f >> P;
	
	st = 1;
	dr = MAX;
	
	while (st < dr)
	{
		sol = 0;
		
		mid = (st + dr) / 2;
		
		cpy = mid;
		
		
		while (cpy != 0)
		{
			cpy /= 5;
			sol += cpy;
		}
		
		if (sol < P)
			st = mid + 1;
		
		
		else if (sol > P) dr = mid - 1;
		
		
		else
		{
			dr = mid - 1;
			ok = 1;
		}
		
	}
	
	if (ok)
		g << mid;
	
	else g << -1;
		
	return 0;
}