Cod sursa(job #664829)

Utilizator baicuviorelBaicu Viorel baicuviorel Data 20 ianuarie 2012 21:57:11
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <fstream>
#define l 1000000000
using namespace std;
ifstream f ( "fact.in" );
ofstream g ( "fact.out" );
long long  p,ok,poz,i,I;

long long OK ( int val )
{
  long long X=val,cif=0,C;
    for ( C=5; C<=val; C*=5 )
        cif+=X/C;

    return cif;
}
long long caut ( int PE )
{
   long long  step=1,p=0;
    for ( ; step<=l; step*=2 );

    for ( ; step; step/=2 )
        if ( OK ( p+step ) <= PE ) p+=step;
    return p;
}

int main()
{   f>> p;
    poz=caut ( p -1 );
if (p==0) g<<1;
else
{
    for ( i=poz; i<=poz+5&&ok==0; i++ )
    {
        I=i;
        if ( OK ( I ) ==p ) {
            g<<I;
            ok=1;
            continue;
        }
    }
    if ( ok==0 ) g<<-1;
}
    f.close();
    g.close();
    return 0;
}