Pagini recente » Cod sursa (job #774753) | Cod sursa (job #1219729) | Cod sursa (job #720342) | Cod sursa (job #1614827) | Cod sursa (job #1496716)
#include <cstdio>
using namespace std;
#define Nmax 302
#define Mod 10007
FILE *f = fopen ( "permutari2.in", "r" );
FILE *g = fopen ( "permutari2.out", "w" );
int D[Nmax][Nmax], Perm[Nmax];
int main () {
int N, K;
fscanf ( f,"%d%d", &N, &K );
Perm[0] = 1;
for ( int i = 1 ; i <= N ; ++i )
Perm[i] = ( Perm[i-1]*i ) % Mod;
D[1][1] = 1;
for ( int i = 2 ; i <= N ; ++i ){
int sum = 0;
for ( int j = 2 ; j <= i ; ++j ){
for ( int k = j-1 ; k < i ; ++k )
D[i][j] = ( D[i][j] + D[k][j-1] * D[i-k][1] ) % Mod;
sum += D[i][j];
if ( sum >= Mod )
sum -= Mod;
}
D[i][1] = Perm[i] - sum;
if ( D[i][1] < 0 )
D[i][1] += Mod;
}
fprintf ( g, "%d", D[N][K] );
return 0;
}