Cod sursa(job #2197026)

Utilizator papinub2Papa Valentin papinub2 Data 20 aprilie 2018 22:26:15
Problema Permutari2 Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>
#include <vector>
#define MOD 10007

using namespace std;

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

int main()
{
    int n, k, fact = 1;
    in >> n >> k;

    vector<vector<int> > dp(n + 1, vector<int>(n + 1));

    for (int i = 1; i <= n; i++)
    {
        fact = (fact * i) % MOD;
        dp[i][1] = fact;

        for (int j = 2; j <= i; j++)
        {
            for (int w = j - 1; w < i; w++)
                dp[i][j] = (dp[i][j] + dp[i - w][1] * dp[w][j - 1]) % MOD;
            dp[i][1] = (dp[i][1] + MOD - dp[i][j]) % MOD;
        }
    }

    out << dp[n][k];
    return 0;
}