Pagini recente » Cod sursa (job #1826328) | Cod sursa (job #2190656) | Cod sursa (job #2810665) | Cod sursa (job #315213) | Cod sursa (job #1496719)
#include <cstdio>
#include <fstream>
using namespace std;
#define Nmax 302
#define Mod 10007
/*FILE *f = fopen ( "permutari2.in", "r" );
FILE *g = fopen ( "permutari2.out", "w" );*/
ifstream fin ( "permutari2.in" );
ofstream fout ( "permutari2.out" );
int D[Nmax][Nmax], Perm[Nmax];
int main () {
int N, K;
//fscanf ( f,"%d%d", &N, &K );
fin >> 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;
D[i][1] = Perm[i];
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];
D[i][1] -= D[i][j];
if ( D[i][1] < 0 )
D[i][1] += Mod;
}
/*D[i][1] = Perm[i] - sum;
if ( D[i][1] < 0 )
D[i][1] += Mod;*/
}
//fprintf ( g, "%d", D[N][K] );
fout << D[N][K];
return 0;
}