Pagini recente » Cod sursa (job #2330925) | Cod sursa (job #2958086) | Cod sursa (job #2925302) | Cod sursa (job #1382638) | Cod sursa (job #479042)
Cod sursa(job #479042)
#include <cstdio>
#define file_in "arbori.in"
#define file_out "arbori.out"
#define ll long long
int N,M,K;
ll a[93][12][12];
void citire()
{
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
scanf("%d %d %d", &N, &M, &K);
}
ll comb(ll n, ll k)
{
int i;
ll rez=1;
for (i=1;i<=k;++i)
{
rez*=n-k+i;
rez/=i;
}
return rez;
}
ll Nr(int kk, int x)
{
if(kk==1)
return 1;
ll n=a[kk][(K+M-1)%M][N]+x-1,k=x;
ll rez=1,i;
for (i=1;i<=k; ++i)
rez*=n-k+i,
rez/=i;
return rez;
}
void solve()
{
int i,j,k,x;
for(i=0;i<=N;i++) a[1][0][i]=1;
for (i=2;i<=N;++i)
for (j=0;j<M;++j)
for (k=1;k<=N;++k)
for (x=0;x<=i/k;++x)
a[i][j][k]+=a[i-x*k][(j-x+M*x)%M][k-1]*Nr(k,x);
printf("%lld\n", a[N][K][N]);
}
int main()
{
citire();
solve();
fclose(stdin);
fclose(stdout);
return 0;
}