Pagini recente » Cod sursa (job #3212698) | Istoria paginii utilizator/carmen_cngl | Cod sursa (job #314146) | Cod sursa (job #2325141) | Cod sursa (job #2325384)
#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll n,m,k,t=1,i,j,l,x;
ll a[100][100][100];
//nr de noduri - gradul radacinii mod m - nr de noduri al celui mai mare fiu al radacinii
ll com(ll x, ll y){
if (y!=1) y=a[y][(k-1+m)%m][n];
if (x){
t*=(y+x-1);
t/=x;
}
else t=1;
return t;
}
int main()
{
freopen("arbori.in","r",stdin);
freopen("arbori.out","w",stdout);
scanf("%lld%lld%lld",&n,&m,&k);
for (i=0;i<=n;i++)
a[1][0][i]=1;
for (i=2;i<=n;i++){
a[i][(i-1+m)%m][1]=1;
for (j=0;j<m;j++)
for (l=2;l<=n;l++)
for (x=0;x*l<i;x++){
a[i][j][l]+=a[i-x*l][(j-x+10000*m)% m][l-1]*com(x,l);
}
}
printf("%lld",a[n][k][n]);
return 0;
}