Pagini recente » Cod sursa (job #1143889) | Cod sursa (job #17484) | Cod sursa (job #2470537) | Cod sursa (job #3003117) | Cod sursa (job #851911)
Cod sursa(job #851911)
#include <fstream>
using namespace std;
const int Nmax = 95;
const int Kmax = 15;
long long D[Nmax][Kmax][Nmax];
int N,M,K;
ifstream F("arbori.in");
ofstream G("arbori.out");
inline int Mod (int A)
{
A = (A >= M || -A >= -M) ? A - M : A;
A = (A >= M || -A >= -M) ? A % M : A;
return ( A<0 ) ? A + M : A;
}
int main()
{
F>>N>>M>>K;
for (int i=0;i<=N;++i)
D[1][0][i]=1;
for (int i=2;i<=N;++i)
{
D[i][ Mod(i-1) ][1]=1;
for (int k=2;k<=N;++k)
for (int j=0;j < M;++j)
{
long long Sol=1;
for (int l=0;l*k < i;++l)
{
D[i][j][k] += Sol * D[i-l*k][Mod(j-l)][k-1];
Sol *= D[k][Mod(K - 1)][k - 1] + l;
Sol /= l + 1;
}
}
}
G<<D[N][K][N-1]<<'\n';
}