Cod sursa(job #1197590)

Utilizator DenisacheDenis Ehorovici Denisache Data 12 iunie 2014 20:41:15
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <cstdio>
using namespace std;
int P;
#define ll long long
ll N;
ll cb(int x)
{
    ll L=0,R=1e18;
    while (L<=R)
    {
        ll M=(L+R)/2,aux1=M,aux2=M-1,nr0_1=0,nr0_2=0;
        while (aux2>0) nr0_1+=aux1/5,aux1/=5,nr0_2+=aux2/5,aux2/=5;
        while (aux1>0) nr0_1+=aux1/5,aux1/=5;
        if (nr0_1==x && nr0_2<nr0_1) return M;
        else if (nr0_1>=x) R=M-1;
        else L=M+1;
    }
    return -1;
}
int main()
{
    freopen("fact.in","r",stdin);
    freopen("fact.out","w",stdout);
    scanf("%d",&P);
    if (P==0) printf("1");
    else printf("%lld",cb(P));
    return 0;
}