Pagini recente » Cod sursa (job #2104811) | Cod sursa (job #2695197) | Cod sursa (job #2771045) | Cod sursa (job #1068021) | Cod sursa (job #491513)
Cod sursa(job #491513)
#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;
DIN[i][j] -= (DIN[i][j] >= MOD)? MOD : 0;
}
DIN[i][1] = perms[i];
for (int j = 2; j <= i; ++j)
{
DIN[i][1] -= DIN[i][j];
DIN[i][1] += (DIN[i][1] < 0)? MOD : 0;
}
}
printf ("%d", DIN[N][K]);
return 0;
}