Cod sursa(job #1496737)

Utilizator BLz0rDospra Cristian BLz0r Data 5 octombrie 2015 15:25:47
Problema Permutari2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <cstdio>
using namespace std;

const int Nmax = 302;
const int Mod = 10007;

int N, K, i, j, k, Perm;
int D[Nmax][Nmax];

int main(){

    freopen ( "permutari2.in", "r", stdin );
    freopen ( "permutari2.out", "w", stdout );

    scanf ( "%d%d", &N, &K );

    D[1][1] = 1;
    Perm = 1;

    for ( i = 2; i <= N; ++i ){
        Perm = (Perm * i) % Mod;
        D[i][1] = Perm;
        for ( j = 2; j <= i; ++j ){
            long long x = 0;
            for ( k = j - 1; k < i; ++k )
                x += D[k][j-1] * D[i-k][1];
            D[i][j] = x % Mod;

            D[i][1] = ( D[i][1] - D[i][j] + Mod ) % Mod;
        }
    }

    printf ( "%d\n", D[N][K] );

    return 0;
}