Cod sursa(job #434207)

Utilizator SpiderManSimoiu Robert SpiderMan Data 5 aprilie 2010 12:57:46
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
using namespace std;

int p, mij;

ifstream f("fact.in");
ofstream g("fact.out");

inline int zero( int mij )
{
    int p = 0;
    while ( mij )
    {
        p += mij / 5 ;
        mij /= 5 ;
    }
    return p;
}
int cb (int mij)
{
    int st,dr;

    for ( st = 0,dr = 5*p; st <= dr ; )
    {
        mij = st + (dr - st >> 1) ;
        if (zero(mij) == p) return mij ;
        else if (zero(mij) < p) st = mij + 1 ;
        else if (zero(mij) > p) dr = mij - 1 ;
    }
    return 1;
}
void rez()
{
    for ( ; mij % 5 ; mij--);
    if ( zero(mij) == p ) g << mij;
    else g << "-1";
}
void solve()
{
    f>>p;
    if ( !p ) g << "1";
    else mij = cb( 0 ), rez();
}
int main()
{
    solve();
    f.close();
    g.close();
    return 0;
}