#include <iostream>
using namespace std;
int num[20][20];
void MaxValue(int values[], int weights[], int m, int n)
{
/********** Begin **********/
int jmax = min(weights[m] - 1, n);
for (int j = 0; j <= jmax; j++) {
num[m][j] = 0;
}
for (int j = weights[m]; j <= n; j++)
num[m][j] = values[m];
for (int i = m - 1; i > 1; i--) {
jmax = min(weights[i] - 1, n);
for (int j = 0; j <= jmax; j++)
num[i][j] = num[i + 1][j];
for (int j = weights[i]; j <= n; j++)
num[i][j] = max(num[i + 1][j], num[i + 1][j - weights[i]] + values[i]);
}
num[1][n] = num[2][n];
if (n >= weights[1]) {
num[1][n] = max(num[1][n], num[2][n - weights[1]] + values[1]);
}
cout << num[1][n];
//补充代码完成任务
/********** End **********/
}