Pagini recente » Cod sursa (job #89776) | Monitorul de evaluare | Cod sursa (job #480295) | Cod sursa (job #1337627) | Cod sursa (job #467541)
Cod sursa(job #467541)
#include <stdio.h>
using namespace std;
#define maxn 310
#define mod 10007
long n, i, j, k, l, sum;
long d[maxn][maxn], fact[maxn], pos[maxn], c[maxn];
int main()
{
freopen("permutari2.in", "r", stdin);
freopen("permutari2.out", "w", stdout);
scanf("%d%d", &n, &k);
fact[0]=1;
for(i=1; i<=n; i++)
{
fact[i]=(fact[i-1]*i)%mod;
}
d[1][1]=1;
for(i=2; i<=n; i++)
{
sum=0;
for(j=2; j<=n; j++)
{
for(l=1; l<i; l++)
d[i][j]=(d[i][j]+d[i-l][j-1]*d[l][1])%mod;
sum=(sum+d[i][j])%mod;
}
d[i][1]=(fact[i]-sum+mod)%mod;
}
printf("%d\n", d[n][k]);
return 0;
}