Pagini recente » Cod sursa (job #1127818) | Cod sursa (job #3255177) | Cod sursa (job #2466416) | Cod sursa (job #798245) | Cod sursa (job #478463)
Cod sursa(job #478463)
#include <cstdio>
const int maxN = 310;
const int mod = 10007;
using namespace std;
int N, K;
int fact[maxN];
int A[maxN][maxN];
int main() {
int i, j, k;
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;
A[1][1] = 1;
for (i = 1; i <= N; i++) {
for (k = 1; k < i; k++) {
for (j = 2; j <= N; j++) {
A[i][j] = A[i][j] + (A[k][j - 1] * A[i - k][1] % mod);
if (A[i][j] >= mod)
A[i][j] -= mod;
}
}
A[i][1] = fact[i];
for (j = 2; j <= N; j++) {
A[i][1] -= A[i][j];
if (A[i][1] < 0)
A[i][1] += mod;
}
}
printf("%d\n", A[N][K]);
return 0;
}