饮料最大满意度算法1.6.1

来源:互联网 发布:java.nio.bytebuffer 编辑:程序博客网 时间:2024/05/01 11:55

#include <stdio.h>
#include <iostream>

int h[5]={8,7,6,5,4};
int c[5]={6,3,6,2,1};
int v[5]={1,2,1,3,6};
int opt[7][6];

void main()
{
 opt[0][5]=0;
 for(int m=1;m<7;m++)
 {
  opt[m][5]=-10000;
 }
 for (int n=4;n>=0;n--)
  for (int l=0;l<=6;l++)
  {
   opt[l][n]=-10000;
   int max=-10000;
   for (int k=0;k<=c[n];k++)
   {
    if (l<(k*v[n]))
     break;
    int x=opt[l-k*v[n]][n+1];
    if (x!=-10000)
    {
     x+=h[n]*k;
        if (x>max)
     {
      max=x;
     }
    }
   }
   opt[l][n]=max;
  }
int z=opt[6][0];
printf("%d/n",z);
}