Pagini recente » Cod sursa (job #2545067) | Cod sursa (job #3136733) | Cod sursa (job #1548989) | Cod sursa (job #2855228) | Cod sursa (job #1151970)
#include <cstdio>
#define MOD 10007
#define Nmax 305
using namespace std;
int dp[Nmax][Nmax],N,K,f[Nmax];
int main()
{
int i,j,k,t;
freopen ("permutari2.in","r",stdin);
freopen ("permutari2.out","w",stdout);
scanf("%d%d", &N,&K);
f[0]=1;
for(i=1;i<=N;++i)
f[i]=(f[i-1]*i)%MOD;
dp[1][1]=1;
for(i=2;i<=N;++i)
{
t=0;
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;
t+=dp[i][j];
if(t>=MOD)
t-=MOD;
}
dp[i][1]=f[i]-t;
if(dp[i][1]<0)
dp[i][1]+=MOD;
}
printf("%d\n", dp[N][K]);
return 0;
}