Cod sursa(job #1813157)

Utilizator claudiu.gatinaFMI Claudiu Gatina claudiu.gatina Data 22 noiembrie 2016 19:05:11
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <iostream>
#include <fstream>

using namespace std;

int check(long long int p, long long int ans)
{
    while(ans)
    {
        ans /= 5;
        p -= ans;
    }

    return p;
}

long long int solve(long long int p, long long int min, long long int max)
{
    if(min > max)
        return -1;
    long long int mij = ((min + max) / 10) * 5;
    long long int c = check(p, mij);
    if(c == 0)
        return mij;
    if(c > 0)
        return solve(p, mij + 5, max);
    return solve(p, min, mij - 5);
}

int main()
{
    fstream f("fact.in", ios::in);
    fstream g("fact.out", ios::out);

    long long int p;

    f >> p;
    if(p == 0)
        g<< 1;
    else
        g << solve(p, ((p*4)/5)*5, p * 5);

    return 0;
}