Cod sursa(job #2155681)

Utilizator alex_bb8Banilean Alexandru-Ioan alex_bb8 Data 7 martie 2018 23:47:48
Problema Factorial Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 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{
    sum=p*5;
    int k=ok(sum);
    if(!poz(sum))
    {for(i=2;i<=k;i++)
    {
     sum-=(i-1)*5;
     i++;
    }
    g<<sum;
    }
    else
    {
//     for(i=2;i<=k;i++)
//    {
//     sum-=(i-1)*5;
//     i++;
//    }
//    if(!ok(sum/5))g<<sum;
//    }
    g<<-1;
    }
}
    return 0;
}