Pagini recente » Cod sursa (job #781381) | Cod sursa (job #284866) | Cod sursa (job #2476539) | Cod sursa (job #1570370) | Cod sursa (job #2314445)
#include <bits/stdc++.h>
using namespace std;
const int Mod=10007;
int n,k;
int dp[305][305],fact[305];
int main()
{
FILE *fin,*fout;
fout=fopen("permutari2.out","wt");
fin=fopen("permutari2.in","rt");
fscanf(fin,"%d%d",&n,&k);
fact[1]=1;
for(int i=2;i<=n;i++)
fact[i]=(fact[i-1]*i)%Mod;
dp[1][1]=dp[2][1]=dp[2][2]=1;
for(int i=3;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]=(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;
}
}
fprintf(fout,"%d",dp[n][k]);
fclose(fin);
fclose(fout);
return 0;
}