Cod sursa(job #466154)

Utilizator marius21Marius Petcu marius21 Data 26 iunie 2010 11:34:45
Problema Permutari2 Scor 0
Compilator cpp Status done
Runda Stelele Informaticii 2010, gimnaziu si clasa a IX-a, Ziua 2 Marime 0.79 kb
#include <cstdio>

FILE *fin=fopen("permutari2.in","r");
FILE *fout=fopen("permutari2.out","w");

int c[301][301];
long long fact[301];

#define MODNR 10007

int main()
{
    int n,k;
    fscanf(fin,"%d %d",&n,&k);
    fact[0]=1;
    for (int i=1; i<=n; i++)
        fact[i]=(fact[i-1]*i)%MODNR;
    for (int i=1; i<=n; i++)
    {
        c[1][i]=fact[i-1];
        for (int j=1; j<=i-2; j++)
        {
            c[1][i]+=((fact[i-2]*j)%MODNR)*(i-1-j);
            c[1][i]%=MODNR;
        }
    }
    for (int i=2; i<=k; i++)
        for (int j=1; j<=n; j++)
        {
            c[i][j]=0;
            for (int k=1; k<j; k++)
            {
                c[i][j]=(c[i][j]+c[i-1][k]*c[1][j-k])%MODNR;
            }
        }
    fprintf(fout,"%d\n",c[k][n]);
    fclose(fin);
    fclose(fout);
    return 0;
}