Cod sursa(job #953471)

Utilizator narcis_vsGemene Narcis - Gabriel narcis_vs Data 26 mai 2013 12:32:22
Problema Factorial Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>

#define In "fact.in"
#define Out "fact.out"

using namespace std;
long k;

inline int F(int x)
{
    int m, s;
    for(m = 5,s = 0 ;m <= x;s += x/m,m *= 5);
    return s;
}

inline int Binary_Search(int left,int right)
{
    int middle, x;
    while(left <= right)
    {
        middle = (left + right) >>1;
        x = F(middle);
        if(x==k)
            return middle;
        if(x<k)
            left = middle + 1;
        else
            right = middle -1;
    }
    return 0;
}

int main()
{
    ifstream f(In);
    f>>k;
    f.close();
    ofstream g(Out);
    if(k==0)
        k = 1;
    else
    {
        k = Binary_Search(0,100000000);
        if(k)
            k -= k%5;
        else
            k = -1;
    }
    g<<k<<"\n";
    g.close();
    return 0;
}