Pagini recente » Cod sursa (job #2798465) | Cod sursa (job #2183815) | Cod sursa (job #3197733) | Cod sursa (job #2091199) | Cod sursa (job #1678250)
#include <bits/stdc++.h>
#define ll long long
#define maxN 301
#define mod 10007
using namespace std;
int n, i, j, k, dp[maxN][maxN], f[maxN];
int main()
{
freopen("permutari2.in", "r", stdin);
freopen("permutari2.out", "w", stdout);
scanf("%d %d", &n, &k);
int l;
f[1] = 1;
dp[1][1] = 1;
dp[1][2] = 1;
dp[2][2] = 1;
for (i = 2; i <= n; ++ i)
f[i] = (f[i - 1] * i) % mod;
for (i = 3; i <= n; ++ i)
{
dp[1][i] = f[i];
for (j = 2; j < i; ++ j)
{
ll x = 0;
for (l = j - 1; l < i; ++ l)
x = x + (1LL * dp[j - 1][l] * dp[1][i - l]);
dp[j][i] = (dp[j][i] + x) % mod;
dp[1][i] -= dp[j][i];
if (dp[1][i] < 0)
dp[1][i] += mod;
}
dp[i][i] = 1;
-- dp[1][i];
if (dp[1][i] < 0)
dp[1][i] += mod;
}
printf("%d", dp[k][n]);
return 0;
}