Cod sursa(job #2322861)

Utilizator andrei5000Andrei Alin andrei5000 Data 18 ianuarie 2019 15:08:45
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <fstream>

using namespace std;
#define nmax 20
ifstream f("fact.in");
ofstream g("fact.out");

unsigned long long v[nmax+1],s[nmax+1],st,dr,nr,P,i,j;

int main()
{
    f >> P;

    s[0] = 1;
    s[1] = 1;
    s[2] = 6;
    v[1] = 1;
    v[0] = 1;

    for(i=2;i<nmax;++i)
        v[i] = 5*v[i-1];

    for(i=3;i<nmax;++i)
     s[i] = 5*s[i-1] + 1;

    while(P){
            st=1;
        while(P>=s[st]) ++st;

        if(P>s[st]-st) {g << -1; return 0;}
        else while(P>=s[st-1]) {P -= s[st-1]; nr += v[st-1];}
        }
    if(nr) g << 5*nr;
    else g << 1;

    return 0;
}