Cod sursa(job #2413303)

Utilizator PetyAlexandru Peticaru Pety Data 23 aprilie 2019 11:48:50
Problema Permutari2 Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin ("permutari2.in");
ofstream fout ("permutari2.out");

const int mod = 10007;

int n, k, dp[302][302], fact[302], i, j, p;

int main()
{
  fin >> n >> k;
  dp[1][1] = fact[0] = 1;
  for (int i = 1; i <= n; i++)
    fact[i] = fact[i - 1] * i % mod;
  for (i = 2; i <= n; i++) {
    dp[i][1] = fact[i];
    for (j = 2; j <= i; j++) {
      for (p = j - 1; p < i; p++)
        dp[i][j] = (dp[i][j] + dp[p][j - 1] * dp[i - p][1]) % mod;
      dp[i][1] = dp[i][1] - dp[i][j];
      dp[i][1] %= mod;
      if (dp[i][1] < 0)
        dp[i][1] += mod;
    }
  }
  fout << dp[n][k];
  return 0;
}