Pagini recente » Cod sursa (job #2083231) | Cod sursa (job #2225300) | Cod sursa (job #324475) | Cod sursa (job #1796886) | Cod sursa (job #176152)
Cod sursa(job #176152)
#include<stdio.h>
#define Nm 91
#define Mm 10
#define ll long long
#define mod(a) ((a)<0?(a)+m:(a))
int n,m,k;
ll M[Nm][Mm][Nm];
void read()
{
freopen("arbori.in","r",stdin);
scanf("%d%d%d",&n,&m,&k);
}
void solve()
{
int i,r,j,l;
long long comb;
for(i=1;i<=n;++i)
for(r=0;r<m;++r)
for(j=n;j;--j)
{
if(i==1) { M[i][r][j]=1; continue; }
if(j>=i) continue;
M[i][r][j]=M[i][r][j+1]; comb=1;
if(!M[j][mod(k-1)][1]) continue;
for(l=1;l*j<i;++l)
{
comb=comb*M[j][mod(k-1)][1]/l;
M[i][r][j]+=comb*M[i-l*j][mod(r-l)][j+1];
}
}
}
void write()
{
freopen("arbori.out","w",stdout);
printf("%lld\n",M[n][k][1]);
}
int main()
{
read();
solve();
write();
return 0;
}