Cod sursa(job #2355280)

Utilizator Andreea100Andreea P Andreea100 Data 25 februarie 2019 22:25:05
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <bits/stdc++.h>
#define PMAX 21000000000
#define LL long long int

using namespace std;

ifstream f ("fact.in");
ofstream g ("fact.out");

int n;

LL nz(LL x)
{
    LL p = 5, rez = 0;
    while(p <= x)
    {
        rez += x/p;
        p = p * 5;
    }
    return rez;
}

LL cb()
{
    LL st = 1, dr = PMAX, mij = 0, mini = -1;
    while(st <= dr)
    {
        mij = st + (dr - st) / 2;
        if(nz(mij) >= n)
        {
            mini = mij;
            dr = mij - 1;
        }
        else
            st = mij + 1;
    }
    return mini;
}

int main()
{
    f >> n;
    if(n == 0)
        g << 1;
    else
    {
        LL st = 1, dr = PMAX, mij = 0;
        while(st <= dr)
        {
            mij = st + (dr - st) / 2;
            if(nz(mij) == n)
            {
                g<<mij - mij % 5;
                return 0;
            }
            else if(nz(mij) > n) dr = mij - 1;
            else st = mij + 1;
        }
        g<<-1;
    }

    return 0;
}