Pagini recente » Cod sursa (job #1331344) | Cod sursa (job #1991560) | Cod sursa (job #2117040) | Cod sursa (job #167818) | Cod sursa (job #3340018)
#include <fstream>
#define int long long
using namespace std;
ifstream cin("arbori.in");
ofstream cout("arbori.out");
int n,m,k,dp[100][100],sol;
/// dp[i][j] = numarul de arbori valizi cu i noduri si j frunze pe ultimul nivel
signed main()
{
cin>>n>>k>>m;
for(int i=k;i<=n;i+=k)
dp[1+i][i]=1;
for(int i=k+1;i<=n;i++){/// noduri
for(int j=1;j<i;j++){/// frunze
for(int t=k-1;i+t<=n;t+=k){/// cate noduri adaug la un nod
dp[i+t][t]+=dp[i][j]*j;
}
}
}
for(int i=1;i<=n;i++)
sol+=dp[n][i];
cout<<sol;
return 0;
}