Cod sursa(job #2137031)

Utilizator AndreiBadescuBadescu Andrei-Octavian AndreiBadescu Data 20 februarie 2018 15:40:44
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>

typedef long long ll;
using namespace std;

ifstream fin ("fact.in");
ofstream fout ("fact.out");

ll n;

ll nrZero ( ll x )
{
	ll s = 0;

	for ( ll p = 5; p <= x; p *= 5 )
        s += x / p;

	return s;
}

ll binSearch ( ll n )
{
	ll pp = -1, mij, st = 1, dr = 1000000000;

	while ( st <= dr )
	{
		mij = (st + dr) / 2;

		if ( nrZero(mij) >= n )
			dr = mij - 1, pp = mij;
		else
			st = mij + 1;
	}

	return pp;
}

int main()
{
    //ios::sync_with_stdio (false);

	fin >> n;

	if ( n == 0 )
		fout << 1;
	else
	{
		ll t = binSearch (n);

		if ( nrZero(t) == n )
			fout << t;
		else
			fout << -1;
	}
}