Cod sursa(job #1504908)

Utilizator paunmatei7FMI Paun Matei paunmatei7 Data 18 octombrie 2015 15:38:14
Problema Permutari2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <cstdio>

#define NMAX 307
#define Mod 10007

using namespace std;

int n, k, x, Dp[NMAX][NMAX];

int main(){
    freopen("permutari2.in", "r", stdin);
    freopen("permutari2.out", "w", stdout);
    scanf("%d %d", &n, &k);
    Dp[1][1] = x = 1;
    for(int i = 2; i <= n; ++i){
        x *= i;
        if(x > Mod)
            x %= Mod;
        Dp[i][1] = x;
        for(int j = 2; j <= i; ++j){
            long long Ans = 0;
            for(int l = j - 1; l < i; ++l)
                Ans += Dp[l][j - 1] * Dp[i - l][1];
            Dp[i][j] = Ans % Mod;
            Dp[i][1] = (Dp[i][1] - Dp[i][j] + Mod) % Mod;
        }
    }
    printf("%d\n", Dp[n][k]);
    return 0;
}