Pagini recente » Rezultatele filtrării | Diferente pentru algoritmiada-2010/runda-1/solutii/arborest intre reviziile 3 si 5 | Cod sursa (job #147554) | Cod sursa (job #2081734) | Cod sursa (job #390864)
Cod sursa(job #390864)
#include<fstream>
using namespace std;
int nrz(unsigned int x)
{
int y=0;
while(x!=0)
{
x=x/5;
y=y+x;
}
return y;
}
void sol(unsigned int a,unsigned int p,unsigned b,unsigned int &s)
{
long m;
if(b>a)
{
m=(a+b)/2;
if(nrz(m)==p)
s=m;
else
if(nrz(m)<p)
sol(m+1,p,b,s);
else
sol(a,p,m-1,s);
}
}
int main()
{
ifstream f("fact.in");
ofstream g("fact.out");
unsigned int p,s=0,c;
f>>p;
sol(0,p,1000000,s);
if(s==0)
g<<-1;
else
{
c=s-1;
while(nrz(c)==p)
c--;
g<<c+1;}
return 1;
}