Cod sursa(job #2325333)

Utilizator aditzu7Adrian Capraru aditzu7 Data 22 ianuarie 2019 15:21:22
Problema Arbori Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <stdio.h>
#define ll long long
using namespace std;
long long din[101][101][101];
long long cmb[202][202];
int i,j,i1,j1,n,m,k;
long long pow=1;
ll comb(int y,int x){
ll sol;
if(x==1) sol =1;
else sol=din[x][(k+m-1)%m][n];

if(y) pow=pow*(y+sol-1)/y;
else pow=1;
return pow;


}
int main()
{

   freopen("arbori.in","r",stdin);
   freopen("arbori.out","w",stdout);
    scanf("%d%d%d",&n,&m,&k);
    for(i=1;i<=n;i++) din[1][0][i]=1;
    for(i=2;i<=n;i++){
        din[i][(i-1)%m][1]=1;
        for(j=0;j<m;j++){

            for(i1=2;i1<=n;i1++){

                for(j1=0;j1*i1<i;j1++){
                    din[i][j][i1]+=din[i-i1*j1][(j-j1+100*m)%m][i1-1]*comb(j1,i1);
                }
            }
        }


    }

printf("%lld",din[n][k][n]);



    return 0;
}