Cod sursa(job #2138010)

Utilizator TrolliciousSir Troll Trollicious Data 21 februarie 2018 10:53:20
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 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;
    }
}