Cod sursa(job #2027670)

Utilizator andreicoman299Coman Andrei andreicoman299 Data 26 septembrie 2017 15:25:41
Problema Permutari2 Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <stdio.h>
#include <stdlib.h>

#define MOD 10007

int d[301][301];

int main(){
    FILE*fi,*fo;
    fi = fopen("permutari2.in","r");
    fo = fopen("permutari2.out","w");

    int n, k;
    fscanf(fi,"%d%d", &n, &k);

    d[1][1] = 1;
    int f = 1;
    for(int i = 2; i <= n; i++){
        f = (f * i) % MOD;
        d[i][1] = f;
        for(int j = 2; j <= i; j++){
            for(int k = j - 1; k < i; k++)
                d[i][j] = d[i][j] + d[k][j - 1] * d[i - k][1];
            d[i][j] = d[i][j] % MOD;
            d[i][1] = d[i][1] + MOD - d[i][j];
        }
        d[i][1] = d[i][1] % MOD;
    }

    fprintf(fo,"%d", d[n][k]);

    fclose(fi);
    fclose(fo);
    return 0;
}