Cod sursa(job #248192)

Utilizator andumMorie Daniel Alexandru andum Data 25 ianuarie 2009 10:49:08
Problema Pascal Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <stdio.h>
#define NMAX 5000001

long r,d,i,v1[NMAX],v2[NMAX],j,k,q;

int main()
{

 freopen("pascal.in","r",stdin);
 freopen("pascal.out","w",stdout);

 scanf("%ld %ld", &r, &d);
 v1[0]=1;
 v1[1]=1;
 k=1;
 for (i=2;i<=r;i++)
	{
	 k++;
	 v2[0]=1;
	 v2[k]=1;
	 for (j=1;j<=k/2;j++)
		{
		 v2[j]=v1[j-1]+v1[j];
		 v2[k-j]=v2[j];
		}
	 if (i!=r)
	  {
	   v1[k]=1;
	   for (j=1;j<=k/2;j++)
		{
		 v1[j]=v2[j];
		 v1[k-j]=v2[j];
		}
	  }
	}
 for (i=0;i<=k/2;i++)
	if (v2[i]%d==0)
		q++;
 if (k%2==0) printf("%ld", (q-1)*2+1);
	else printf("%ld", q*2);

 return 0;
}