Cod sursa(job #2155675)

Utilizator alex_bb8Banilean Alexandru-Ioan alex_bb8 Data 7 martie 2018 23:42:47
Problema Factorial Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <fstream>

using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
long long v[24],p,i,sum;
int ok(long long x)
{
 int st=1,dr=23,mid;
 while(st<=dr)
 {
  mid=(st+dr)/2;
  if(v[mid]==x) return mid;
  else if(x>v[mid]) st=mid+1;
  else dr=mid-1;
 }
 return dr;
}
int poz(long long x)
{
 int st=1,dr=23,mid;
 while(st<=dr)
 {
  mid=(st+dr)/2;
  if(v[mid]==x) return 1;
  else if(x>v[mid]) st=mid+1;
  else dr=mid-1;
 }
return 0;
}

int main()
{   v[1]=5;
    for(i=2;i<=23;i++)
     v[i]=v[i-1]*5;
    f>>p;
    if(!p) g<<1;
    else{
//     for(i=5;;i+=5)
//    {
//      if(ok(i))
//       sum+=poz(i);
//      else sum+=1;
//      if(sum==p) break;
//      else if(sum>p) {g<<-1;return 0;}
//      else continue;
//    }
    sum=p*5;
    int k=ok(sum);
    for(i=2;i<=k;i++)
    {
     sum-=(i-1)*5;
     i++;
    }
    g<<sum;
    }
    return 0;
}