Cod sursa(job #2270752)

Utilizator BlueLuca888Girbovan Robert Luca BlueLuca888 Data 27 octombrie 2018 15:04:55
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>

using namespace std;

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

int p, n, r, c, suma, st, dr, mid, w, v[100000];

int main (){

      fin>>p;

      st = 1; dr = p*5;

      while (st <= dr) {
            r = (st + dr)/2;

            c = 5;

            suma = 0;
            while (c <= r) {
                  suma += r/c;
                  c *= 5;
            }

            /// in care interval cautam in continuare rezultatul ? (st r-1 sau r+1 dr)
            if (suma >= p)
                  dr = r-1;
            else
                  st = r+1;
      }
      /// aici verific daca st! chiar da p

      c=5;
      suma=0;

      while(c<=st){
            suma=suma + st/c;

            c=c*5;
      }

      if(suma != p){
            fout<<-1;
            return 0;
      }

      fout<<st;


      return 0;
}