Pagini recente » Istoria paginii runda/jc2016-runda1/clasament | Cod sursa (job #2620023) | Cod sursa (job #2762578) | Cod sursa (job #2480398) | Cod sursa (job #2510731)
#include <iostream>
#include <fstream>
const int MAX_N = 300;
const int MOD = 10007;
int Count[5 + MAX_N][5 + MAX_N];
int main() {
std::ifstream fin("permutari2.in");
int n, k;
fin >> n >> k;
Count[1][1] = 1;
int fact = 1;
for (int i = 2; i <= n; ++i) {
fact = (fact * i) % MOD;
Count[i][1] = fact;
for (int j = 2; j <= i; ++j) {
long long val = 0;
for (int x = j - 1; x < i; ++x)
val += 1LL * Count[x][j - 1] * Count[i - x][1];
Count[i][j] = val - val / MOD * MOD;
Count[i][1] = (Count[i][1] - Count[i][j] + MOD) % MOD;
}
}
std::ofstream fout("permutari2.out");
fout << Count[n][k];
return 0;
}