Cod sursa(job #1504718)

Utilizator refugiatBoni Daniel Stefan refugiat Data 18 octombrie 2015 08:12:04
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
    ifstream si;
    si.open("fact.in");
    ofstream so;
    so.open("fact.out");
    int p;
    si>>p;
    if(p==0)
    {
        so<<1;
    }
    else
    {
        int st=(4*p)/5*5-1,dr=5*p+1,mij;
        int sum,r;
        while(st<=dr)
        {
            mij=(st+dr)>>1;
            sum=0;
            r=mij;
            while(r)
            {
                r/=5;
                sum+=r;
            }
            if(sum==p)
            {
                st=dr=mij;
                break;
            }
            else
            {
                if(sum<p)
                    st=mij+1;
                else
                    dr=mij-1;
            }
        }
        if(st==dr)
        {
            so<<st/5*5;
        }
        else
            so<<-1;
    }
    so<<'\n';
    so.close();
    si.close();
    return 0;
}