Pagini recente » Cod sursa (job #933469) | Cod sursa (job #107908) | Cod sursa (job #1830977) | Cod sursa (job #897735) | Cod sursa (job #2810936)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("permutari2.in");
ofstream fout("permutari2.out");
int n, K;
const int mod = 10007;
long dp[305][305];
long long P[305];
void Factorial(int n)
{
int i;
P[1] = 1;
for(i = 2;i <= n;i++)
P[i] = (P[i - 1] * i) % mod;
}
int main()
{
int i, j, k;
fin >> n >> K;
dp[1][1] = dp[2][1] = dp[2][2] = 1;
Factorial(n);
for(i = 3;i <= n;i++)
{
dp[i][1] = P[i];
for(j = 2;j <= i;j++)
{
for(k = j - 1;k < i;k++)
dp[i][j] = (dp[i][j] + dp[k][j - 1] * dp[i - k][1]) % mod;
dp[i][1] -= dp[i][j];
if(dp[i][1] < 0) dp[i][1] +=mod;
}
}
fout << dp[n][K] << "\n";
return 0;
}