Cod sursa(job #2620818)

Utilizator CharmichlesAndrei Brihac Charmichles Data 29 mai 2020 18:25:16
Problema Factorial Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

ifstream fin("fact.in");
ofstream fout("fact.out");

long long nrZero(long long val) {
    long long nr = 0, p = 5;
    while (p <= val) {
        nr += val / p;
        p *= 5;
    }
    return nr;
}

long long cautareBinara(long long val) {
    if (val == 0) {
        return 1;
    }
    if (val == 1) {
        return 5;
    }
    long long stg = 0, dr = 5 * val, sol;
    while (stg < dr) {
        long long mij = (stg + dr) / 2;
        if (nrZero(mij) == val) {
            while (nrZero(mij - 1) == val) {
                mij--;
            }
            return mij;
        }
        if (nrZero(mij) < val) {
            stg = mij + 1;
        }
        else {
            sol = mij;
            dr = mij - 1;
        }
    }
}

int main() {
    long long p;
    fin >> p;
    fout << cautareBinara(p);
    fin.close();
    fout.close();
    return 0;
}