Cod sursa(job #1759825)

Utilizator alexpetrescuAlexandru Petrescu alexpetrescu Data 19 septembrie 2016 21:30:11
Problema Permutari2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <cstdio>

#define MOD 10007
#define MAXN 300

int d[MAXN+1][MAXN+1];

int main(){
    int n, k, i, j, p, fact, sum;
    long long aux;
    FILE *fin, *fout;
    fin=fopen("permutari2.in", "r");
    fout=fopen("permutari2.out", "w");
    fscanf(fin, "%d%d", &n, &k);
    d[1][1]=1;
    fact=1;
    for(i=2; i<=n; i++){
        fact=fact*i%MOD;
        sum=fact;
        for(j=2; j<=i; j++){
            aux=0;
            for(p=j-1; p<i; p++)
                aux+=d[p][j-1]*d[i-p][1];
            d[i][j]=aux%MOD;
            sum+=MOD-d[i][j];
        }
        d[i][1]=sum%MOD;
    }
    fprintf(fout, "%d\n", d[n][k]);
    fclose(fin);
    fclose(fout);
    return 0;
}