Cod sursa(job #1496726)

Utilizator BLz0rDospra Cristian BLz0r Data 5 octombrie 2015 15:14:42
Problema Permutari2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <iostream>
#include <cstdio>
using namespace std;

const int Mod = 10007;

int main (){

    int D[301][301];

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

    int N, K, x, y, Perm = 1;

    cin >> N >> K;

    D[1][1] = 1;

    for ( int i = 2 ; i <= N ; ++i ){
        x = ( Perm * i ) % Mod;
        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;
}