Pagini recente » Cod sursa (job #2721832) | Cod sursa (job #882991) | Cod sursa (job #489381) | Cod sursa (job #1397640) | Cod sursa (job #1340933)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("permutari2.in");
ofstream fout("permutari2.out");
const int MODULO=10007;
const int NMAX=305;
int n,k,dp[NMAX][NMAX],fact[NMAX];
//dp[i][j]=nr de perm de lg i folosind primele i elemente cu j prefixe bune
int main()
{
int i,j,l;
fin>>n>>k;
fact[1]=1;
for (i=2;i<NMAX;i++) fact[i]=(i*fact[i-1])%MODULO;
dp[1][1]=1;
for (i=2;i<=n;i++)
{
dp[i][1]=fact[i];
for (j=2;j<=i;j++)
{
for (l=1;l<i;l++)
dp[i][j]+=dp[l][j-1]*dp[i-l][1];
dp[i][j]%=MODULO;
}
for (j=2;j<=i;j++)
{
dp[i][1]-=dp[i][j];
if (dp[i][1]<0) dp[i][1]+=MODULO;
}
}
fout<<dp[n][k]<<"\n";
return 0;
}