Cod sursa(job #1846213)
Utilizator | Data | 12 ianuarie 2017 13:00:15 | |
---|---|---|---|
Problema | Permutari2 | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.65 kb |
#include <fstream>
using namespace std;
ifstream fin("permutari2.in");
ofstream fout("permutari2.out");
const int N = 310, mod = 10007;
int n, m, i, j, k, v[N][N], x, p;
int main() {
fin >> n >> m;
v[1][1] = 1;
x = 1;
for (i = 2; i <= n; ++i) {
x = (x * i) % mod;
v[i][1] = x;
for (j = 2; j <= n; ++j) {
for (p = j - 1; p < i; ++p) {
v[i][j] = (v[i][j] + v[p][j - 1] * v[i - p][1]) % mod;
}
v[i][1] -= v[i][j];
if (v[i][1] < 0) {
v[i][1] += mod;
}
}
}
fout << v[n][m];
return 0;
}