Pagini recente » Cod sursa (job #2846742) | Cod sursa (job #263032) | Cod sursa (job #1148130) | Cod sursa (job #1945990) | Cod sursa (job #514438)
Cod sursa(job #514438)
#include<stdio.h>
#define MOD 10007
int N,M,fact[400],p[400],best[400][400];
int main()
{
freopen("permutari2.in","r",stdin);
freopen("permutari2.out","w",stdout);
scanf("%d%d",&N,&M);
fact[0]=1;
for(int i=1;i<=N;++i)
fact[i]=fact[i-1]*i%MOD;
p[1]=1;
p[2]=1;
for(int i=3;i<=N;++i)
{
p[i]=fact[i];
for(int j=0;j<i;++j)
{
p[i]=p[i]-p[j]*fact[i-j]%MOD;
if(p[i]<0)
p[i]+=MOD;
}
}
best[0][0]=1;
for(int i=0;i<N;++i)
for(int j=0;j<M;++j)
{
if(best[i][j])
for(int k=i+1;k<=N;++k)
{
best[k][j+1]=(best[k][j+1]+best[i][j]*p[k-i])%MOD;
}
}
printf("%d\n",best[N][M]);
}