Cod sursa(job #2469105)

Utilizator RaduXD1Nicolae Radu RaduXD1 Data 6 octombrie 2019 15:19:02
Problema Arbori Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
#include <iomanip>
#include <algorithm>
using namespace std;
ifstream fin("arbori.in");
ofstream fout("arbori.out");
int n,m,k,i,j,s,x;
long long comb,d[95][11][95];
int mod(int a)
{
    a%=m;
    if(a<0) return a+m;
    return a;
}
int main() {
    fin>>n>>m>>k;
    for(i=0;i<=n;i++) d[1][0][i]=1;
    for(i=2;i<=n;i++)
    {
        d[i][mod(i-1)][1]=1;
        for(s=2;s<=n;s++)
            for(j=0;j<m;j++)
            {
                comb=1;
                for(x=0;x*s<i;x++)
                {
                    d[i][j][s]+=d[i-s*x][mod(j-x)][s-1]*comb;
                    comb*=d[s][mod(k-1)][s-1]+x;
                    comb/=x+1;
                }
            }
    }
    fout<<d[n][k][n-1];
    return 0;
}