Pagini recente » Cod sursa (job #315928) | Cod sursa (job #896522) | Cod sursa (job #1215854) | Cod sursa (job #1989372) | Cod sursa (job #72918)
Cod sursa(job #72918)
#include <stdio.h>
FILE *f1,*f2;
long long p,s,s1,s2,x,d,r,i,h,c,v[5000000001],z[5000000001];
void putere(long x)
{
p=1;
s=0;
while (p*d<=x)
{
p=p*d;
s=s+x/p;
}
}
int main()
{
f1=fopen("pascal.in","r");
f2=fopen("pascal.out","w");
fscanf(f1,"%ld%ld",&r,&d);
c=d;
if (d==4) d=2;
if (c!=6) putere(r);
if (c==6)
{
d=2;
putere(r);
s1=s;
d=3;
putere(r);
s2=s;
}
r++;
d=c;
s2=s;
if (c!=6)
for (i=1;i<=r;i++)
{
if (c==4) d=2;
putere(i-1);
v[i]=s;
}
if (c==6)
for (i=1;i<=r;i++)
{
d=3;
putere(i-1);
v[i]=s;
d=2;
putere(i-1);
z[i]=s;
}
if (c!=6)
{
for (i=1;i<=r/2;i++)
{
if (c==4)
if (s2>v[i]+v[r+1-i]+1) h++;
if (c!=4)
if (s2>v[i]+v[r+1-i]) h++;
}
h=h*2;
if (r%2==1)
{
i=r/2+1;
if (c==4)
if (s2>v[i]+v[r+1-i]+1) h++;
if (c!=4 )
if (s2>v[i]+v[r+1-i]) h++;
}
}
if (c==6)
{
for (i=1;i<=r/2;i++)
if (s2>v[i]+v[r+1-i] && s1>z[i]+z[r+1-i]) h++;
h=h*2;
if (r%2==1)
{
i=r/2+1;
if (s2>v[i]+v[r+1-i] && s1>z[i]+z[r+1-i]) h++;
}
}
fprintf(f2,"%ld",h);
fclose(f1);
fclose(f2);
return(0);
}