Cod sursa(job #1838741)

Utilizator PopoviciRobertPopovici Robert PopoviciRobert Data 1 ianuarie 2017 17:36:36
Problema Permutari2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <bits/stdc++.h>
#define MOD 10007
#define MAXN 300
int dp[MAXN+1][MAXN+1];
int main(){
    std::ifstream fin("permutari2.in");
    std::ofstream fout("permutari2.out");
    int i,n,k,j,p,fact;
    fin >> n >> k;
    dp[1][1]=1;
    fact=1;
    for(i=2;i<=n;i++){
       fact=(fact*i)%MOD;
       dp[i][1]=fact;
       for(j=2;j<=n;j++){
          for(p=j-1;p<i;p++)
            dp[i][j]=(dp[i][j]+dp[p][j-1]*dp[i-p][1])%MOD;
          dp[i][1]-=dp[i][j];
          if(dp[i][1]<0)
            dp[i][1]+=MOD;
       }
    }
    fout << dp[n][k];
    fin.close();
    fout.close();
    return 0;
}