Pagini recente » Clasament monthly-2014-runda-3 | Cod sursa (job #445473)
Cod sursa(job #445473)
#include <cstdio>
#define file_in "pascal.in"
#define file_out "pascal.out"
int n,d,i,p[10],sol,x;
void citire()
{
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
scanf("%d %d", &n,&d);
}
void pascal()
{
x=n-i;
while(x%2==0)
{
x/=2;
p[2]++;
}
while(x%3==0)
{
x/=3;
p[3]++;
}
while(x%5==0)
{
x/=5;
p[5]++;
}
x=i+1;
while(x%2==0)
{
x/=2;
p[2]--;
}
while(x%3==0)
{
x/=3;
p[3]--;
}
while(x%5==0)
{
x/=5;
p[5]--;
}
if (d==2)
{
if (p[2]>=1)
sol++;
}
if (d==3)
{
if (p[3]>=1)
sol++;
}
if (d==4)
{
if (p[2]>=2)
sol++;
}
if (d==5)
{
if (p[5]>=1)
sol++;
}
if (d==6)
{
if (p[2]>=1 &&p[3]>=1)
sol++;
}
}
void solve()
{
for (i=0;i<=(n-3)/2;++i)
pascal();
sol<<=1;
if (n%2==0) sol++;
printf("%d", sol);
}
int main()
{
citire();
solve();
fclose(stdin);
fclose(stdout);
return 0;
}