#include<iostream>
using namespace std;
#define MAXN 20
int n=5;
int W=10;
int w[]={0,6,5,4,2,1};
int v[]={0,5,3,5,3,2};
int x[MAXN];
int maxv;
void dfs(int i,int tw,int tv,int op[])
{
if(i>n)
{
if(tw==W&&tv>maxv)
{
maxv=tv;
for(int j=1;j<=n;j++)
x[j]=op[j];
}
}
else
{
op[i]=1;
dfs(i+1,tw+w[i],tv+v[i],op);
op[i]=0;
dfs(i+1,tw,tv,op);
}
}
void dispsolution()
{
int i;
for(i=1;i<=n;i++)
if(x[i]==1)
cout<<"选取第"<<i<<"个物品"<<endl;
cout<<"总价值 = "<<maxv;
}
int main(){
int op[MAXN];
dfs(1,0,0,op);
dispsolution();
return 0;
}