Cod sursa(job #2155653)

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

using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
long long v[21];
int i,sum,p;
bool ok(int x)
{
 int st=1,dr=20,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 poz(int x)
{
 int st=1,dr=20,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;
 }

}
int main()
{   v[1]=5;
    for(i=2;i<=20;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;
    }
    g<<i;
    }
    return 0;
}