Pagini recente » Cod sursa (job #2060832) | Cod sursa (job #3177918) | Cod sursa (job #2015126) | Cod sursa (job #418661) | Cod sursa (job #2511372)
#include <fstream>
using namespace std;
ifstream fin("permutari2.in");
ofstream fout("permutari2.out");
const int NMAX = 300;
const int MOD = 10007;
int N, K;
int dp[NMAX + 5][NMAX + 5];
int main()
{
fin >> N >> K;
dp[1][1] = 1;
int fact = 1;
for(int l = 2; l <= N; l++)
{
fact = (fact * l) % MOD;
dp[l][1] = fact;
for(int j = 2; j <= l; j++)
{
long long val = 0;
///dp[l][j] = sum(dp[x][j - 1] * dp[l - x][1])
for(int p = j - 1; p < l; p++)
val = val + 1LL * dp[p][j - 1] * dp[l - p][1];
dp[l][j] = val % MOD;
dp[l][1] = (dp[l][1] - dp[l][j] + MOD) % MOD;
}
}
fout << dp[N][K] << '\n';
return 0;
}