Pagini recente » Cod sursa (job #406181) | Cod sursa (job #3161195) | Cod sursa (job #870963) | Cod sursa (job #657413) | Cod sursa (job #552611)
Cod sursa(job #552611)
#include <stdio.h>
using namespace std;
#define maxn 310
#define mod 10007
int n, k, sum;
int d[maxn][maxn], fact[maxn], prec[maxn];
int main()
{
freopen("permutari2.in", "r", stdin);
freopen("permutari2.out", "w", stdout);
scanf("%d%d", &n, &k);
fact[0]=1;
for(int i=1; i<=n; ++i)
fact[i]=(fact[i-1]*i)%mod;
for(int i=1; i<=n; i++)
{
d[1][i]=fact[i];
for(int j=1; j<i; j++)
{
d[1][i]-=(d[1][j]*fact[i-j])%mod;
while(d[1][i]<0)
d[1][i]+=mod;
}
}
d[1][1]=1;
for(int i=2; i<=k; ++i)
for(int j=1; j<=n; ++j)
for(int l=i-1; l<j; ++l)
d[i][j]=(d[i][j]+d[i-1][l]*d[1][j-l])%mod;
printf("%d\n", d[k][n]);
return 0;
}