Pagini recente » Cod sursa (job #241380) | Cod sursa (job #1107841) | Cod sursa (job #1388765) | Cod sursa (job #579670) | Cod sursa (job #1496724)
#include <iostream>
#include <cstdio>
using namespace std;
int D[301][301], Perm[301];
const int Mod = 10007;
int main (){
freopen ( "permutari2.in", "r", stdin );
freopen ( "permutari2.out", "w", stdout );
cin.sync_with_stdio(false);
int N, K, x, y;
cin >> 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 ){
x = Perm[i];
for ( int j = 2 ; j <= i ; ++j ){
y = 0;
for ( int k = j-1 ; k < i ; ++k ){
y += D[k][j-1] * D[i-k][1] % Mod;
if ( y >= Mod )
y -= Mod;
}
D[i][j] = y;
x -= y;
if ( x < 0 )
x += Mod;
}
D[i][1] = x;
}
cout << D[N][K];
return 0;
}