Cod sursa(job #1919466)

Utilizator SenibelanMales Sebastian Senibelan Data 9 martie 2017 19:36:25
Problema Factorial Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>

using namespace std;

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

const long long oo = 2100000000000;
long long P;
long long sol = oo + 1;

bool Works(long long n){
  long long zr = 0;
  while(n){
    zr += n / 5;
    n /= 5;
  }
  if(zr >= P)
    return 1;
  return 0;
}

void BinarySearch(long long left, long long right){
  long long mid;
  while(left <= right){
    mid = (left + right) / 2;
    if(Works(mid)){
      sol = mid;
      right = mid - 1;
    }
    else
      left = mid + 1;
  }
}

int main(){
  in >> P;
  BinarySearch(1, oo);
  if(sol == oo + 1)
    out << -1 << "\n";
  else
    out << sol << "\n";
  return 0;
}