/*writen by bojie*/
#include<iostream>
# include<cstring>
using namespace std;
# define max(a,b) a>b?a:b
struct Item
{
int weight;
int value;
Item():weight(0),value(0){}
};
int max = 10;
int main()
{ Item *item = new Item[4];
/*
W V all=10
3,4
4,5
5,6
*/
int dp[100][1000];
memset(dp,0,sizeof(dp));
for(int i=1; i!=4;++i)
{
item[i].value = i+3;
item[i].weight = i+2;
printf("%d %d\n",item[i].value,item[i].weight);
}
for(int i = 0; i <= 3;++i)
{
for(int j = 0; j <= 10;++j)
if(j >= item[i].weight)
{
dp[i][j] = max(dp[i-1][j],dp[i-1][j-item[i].weight]+item[i].value);
printf("%4d",dp[i][j]);
}
else
{
dp[i][j]=dp[i-1][j];
printf("%4d",dp[i][j]);
}
printf("\n");
}
delete[] item;
return 0;
}/*writen by bojie*/
#include<iostream>
# includ