Cod sursa(job #2314435)

Utilizator 12222Fendt 1000 Vario 12222 Data 8 ianuarie 2019 15:16:42
Problema Permutari2 Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <bits/stdc++.h>

using namespace std;

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

const int Mod=10007;

int n,k;
int dp[305][305],fact[305];

int main()
{
    fin>>n>>k;

    fact[0]=1;
    for(int i=1;i<=n;i++)
        fact[i]=(1LL*fact[i-1]*i)%Mod;

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

        for(int j=2;j<=i;j++)
        {
            for(int p=j-1;p<i;p++)
                dp[i][j]=1LL*(dp[i][j]+dp[p][j-1]*dp[i-p][1])%Mod;

            dp[i][1]-=dp[i][j];
            if(dp[i][1]<0)dp[i][1]+=Mod;
        }
    }

    fout<<dp[n][k]<<"\n";

    fin.close();
    fout.close();
    return 0;
}