Cod sursa(job #1739675)

Utilizator amaliarebAmalia Rebegea amaliareb Data 9 august 2016 22:41:33
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
long long n,i,j,p,st,dr,m,p5[13],nr,ok;

int main()
{
    f>>p;
    p5[0]=1;
    for(i=1;i<=12;i++)
    {
        p5[i]=p5[i-1]*5;
    }
    if(p)
    {
        st=1; dr=500000001;
        while(st<=dr)
        {
            nr=0;
            m=st+(dr-st)/2;
            for(i=1;i<=12;i++) nr+=m/p5[i];
            if(nr>p) dr=m-1;
            else if(nr<p) st=m+1;
            else st=dr+1, m=m-(m%5),ok=1;
        }
        if(ok) g<<m<<'\n';
        else g<<-1<<'\n';
    }
    else g<<1<<'\n';
    return 0;
}