Cod sursa(job #466534)

Utilizator mihai_floreaFlorea Mihai Alexandru mihai_florea Data 26 iunie 2010 22:21:50
Problema Permutari2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <cstdio>

const int MOD=10007;
const int NMAX=303;

int din[NMAX][NMAX],A[NMAX][NMAX];

int main()
{
    int N,K,i,j,k;
    freopen("permutari2.in","r",stdin);

    scanf("%d %d",&N,&K);
    
    for (i=0;i<=N;++i) A[i][0]=1;
	for (i=1;i<=N;++i)
      for (j=1;j<=i;++j)
        A[i][j]= (A[i][j-1]*(i-j+1) - A[j][j-1] + MOD)%MOD;

	for (i=1;i<=N;++i) din[i][1] = A[i][i-1];
    for (i=1;i<=N;++i)
		for (j=2;j<=i && j<=K;++j)
			for (k=j-1;k<i;++k)
               din[i][j] = (din[i][j] + din[k][j-1]*din[i-k][1])%MOD; 


	freopen("permutari2.out","w",stdout);
    printf("%d\n",din[N][K]);

	return 0;
}