Pagini recente » Cod sursa (job #1303341) | Cod sursa (job #2222098) | Cod sursa (job #798818) | Cod sursa (job #2548091) | Cod sursa (job #1496731)
#include<cstdio>
using namespace std;
#define Nmax 301
#define Mod 10007
FILE *f = fopen ( "permutari2.in", "r" );
FILE *g = fopen ( "permutari2.out", "w" );
int N, K;
int D[Nmax][Nmax], Perm[Nmax];
int main(){
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-1 ; ++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]);
fclose(f);
fclose(g);
return 0;
}