Cod sursa(job #287575)

Utilizator mihaionlyMihai Jiplea mihaionly Data 24 martie 2009 22:58:39
Problema Factorial Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>
using namespace std;
#define dim 100000100
typedef long long tip;
tip a,b,c,p,i,fn;
bool ok=false;
ifstream ef("fact.in");
ofstream g("fact.out");
tip get(tip c)
 {
 tip k=0,j,cn;
 for(j=25,cn=1;j<=c;j*=5,cn++)
  k+=cn; 
 k+=c/5;
 return k;
 }
int main()
 {
 ef>>p;
 if(p==0)
  {
  g<<"1";
  return 0;
  }
 a=0;
 b=dim-100;
 while(a<b&&!ok)
  {
  c=(a+b)/2-(((a+b)/2)%5);
  fn=get(c); //get(c) returneaza zerourile pe care le are la sfarsit c!
  if(fn==p)
   {
   ok=true;
   i=c;
   }
  else if(fn<p)
   a=c+1;
  else
   b=c-1;
  }
 if(ok)
  g<<i;
 else if(fn>p)
  g<<"-1";
 return 0;         
 }