#include #include int sell_recursive(int* price, int* family, int* output, int m,int n) { if(m==1) { output[m-1]=(n/family[m-1])*family[m-1]; return output[m-1]*price[m-1]; } else { int earning=0, *opt; opt = (int*)malloc(m*sizeof(int)); for(int i=0; n>=0;i++) { int temp = sell_recursive(price, family, output, m-1,n); if(temp + i*price[m-1]*family[m-1] > earning) { opt[m-1]=i*family[m-1]; for(int j=0;j=0;i--) { output[i]=sol[i][temp1]; temp1 = temp1-sol[i][temp1]; } return dp[m-1][n]; } int main() { int i,n,m,*family,*price,*output, earning; printf("Write the number of apples that Ramu has: "); scanf("%d",&n); printf("Write the number of buyers: "); scanf("%d",&m); family=(int*)malloc(m*sizeof(int)); price=(int*)malloc(m*sizeof(int)); output=(int*)malloc(m*sizeof(int)); printf("Write family sizes: \n"); for(i=0;i