Pagini recente » Cod sursa (job #890541) | Cod sursa (job #636412) | Cod sursa (job #255667) | Cod sursa (job #1469404) | Cod sursa (job #1474198)
#include <cstdio>
using namespace std;
const int Nmax = 310;
const int MOD = 10007;
int n , K , i , j , k , fact;
int dp[Nmax][Nmax];
int main()
{
freopen("permutari2.in","r",stdin);
freopen("permutari2.out","w",stdout);
scanf("%d %d", &n, &K);
dp[1][1] = 1; fact = 1;
for (i = 2; i <= n; ++i)
{
fact = (fact * i) % MOD;
dp[i][1] = fact;
for (j = 2; j <= i; ++j)
{
long long x = 0;
for (k = j - 1; k < i; ++k)
x += dp[k][j-1] * dp[i-k][1];
dp[i][j] = x % MOD;
dp[i][1] = (dp[i][1] - dp[i][j] + MOD) % MOD;
}
}
printf("%d\n", dp[n][K]);
return 0;
}