Pagini recente » Cod sursa (job #1806547) | Cod sursa (job #2590773) | Cod sursa (job #1905295) | Clasament 2313123132 | Cod sursa (job #491511)
Cod sursa(job #491511)
#include <iostream>
#include <string>
using namespace std;
#define NM 305
#define MOD 10007
int DIN[NM][NM], perms[NM];
int main()
{
int N, K;
freopen ("permutari2.in", "r", stdin);
freopen ("permutari2.out", "w", stdout);
scanf ("%d %d", &N, &K);
perms[0] = 1;
for (int i = 1; i <= N; ++i) perms[i] = (perms[i - 1] * i) % MOD;
DIN[0][0] = 1;
for (int i = 1; i <= N; ++i)
{
for (int j = 1; j <= i; ++j)
for (int k = 0; k < i; ++k)
{
DIN[i][j] += (DIN[i - k][j - 1] * DIN[k][1]) % MOD;
if (DIN[i][j] > MOD) DIN[i][j] -= MOD;
}
DIN[i][1] = perms[i];
for (int j = 2; j <= i; ++j)
{
DIN[i][1] -= DIN[i][j];
if (DIN[i][1] < 0) DIN[i][1] += MOD;
}
}
printf ("%d", DIN[N][K]);
return 0;
}