Cod sursa(job #1889654)

Utilizator dumitrescu_andreiDumitrescu Andrei dumitrescu_andrei Data 22 februarie 2017 20:21:14
Problema Factorial Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
long long p;

long long checker(long long x)
{
    long long s=0;
    long long q=5;

    while(x/q)
    {
        s+=(x/q);
        q*=5;
    }

    return s;

}

long long cautare_binara(long long MAX,long long Min)
{

    while(Min<MAX)
        {
            long long mijloc=(MAX+Min)/2;
           long long nr = checker(mijloc);
        if(nr==p)
            return mijloc;
        else if(nr>p)
            MAX=mijloc-1;
        else
            Min=mijloc+1;

        }

    if(MAX<Min)
        return -1;

}

int main()
{
f>>p;
if(p==0)
    g<<1;
else
{
    long long MAX=1000000000;
    long long MIN=5;
    long long w=cautare_binara(MAX,MIN);

    while(w%5)
        w--;
     long long s=0;
    long long q=5;

    while(w/q)
    {
        s+=(w/q);
        q*=5;
    }
     if(s<p)
        g<<-1;
     else
        g<<w;


}
}