#include "iostream"
#define CAPACITY 10
#define GOODSNUM 6
using namespace std;
int nVol[GOODSNUM];
int nValue[GOODSNUM];
int knapsack(int itemIndex,int vol);
void main()
{
int i=0,j=0;
while(i<GOODSNUM)
{
cout<<"input the "<<i+1<<"th item(volume and value):";
cin>>nVol[i]>>nValue[i];
i++;
}
cout<<"The max value is: "<<knapsack(GOODSNUM,CAPACITY)<<endl;
}
int knapsack(int itemIndex,int vol)
{
if (itemIndex==0||vol==0)
{
return 0;
}
else if (vol>=nVol[itemIndex] && knapsack(itemIndex-1,vol)<knapsack(itemIndex-1,vol-nVol[itemIndex])+nValue[itemIndex])
{
return knapsack(itemIndex-1,vol-nVol[itemIndex])+nValue[itemIndex];
}
else
return knapsack(itemIndex-1,vol);
}