Cod sursa(job #2810935)

Utilizator NeganAlex Mihalcea Negan Data 30 noiembrie 2021 17:31:18
Problema Permutari2 Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <bits/stdc++.h>

using namespace std;

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

int n, K;
const int mod = 10007;
long dp[305][305];
long long P[305];
void Factorial(int n)
{
    int i;
    P[1] = 1;
    for(i = 2;i <= n;i++)
        P[i] = (P[i - 1] * i) % mod;
}
int main()
{
    int i, j, k;
    fin >> n >> K;
    dp[1][1] = dp[2][1] = dp[2][2] = 1;
    Factorial(n);
    for(i = 3;i <= n;i++)
    {
        dp[i][1] = P[i];
        for(j = 2;j <= i;j++)
        {
            for(k = j - 1;k < i;k++)
                dp[i][j] = (dp[i][j] + dp[k][j - 1] * dp[i - k][1]) % mod;
            dp[i][1] -= dp[i][j];
            if(dp[i][1] < 0) dp[i][1] +=mod;
        }
    }
    fout << dp[n][K] << "\n";
    return 0;
}