You are on page 1of 1

static int task3() {

for (int j = 0; j < m; ++j) {


for (int i = 1; i < n; i++) {
grades[0][j] += grades[i][j];
}
}

int[][][] dp = new int[2 * m + 1][n * x + 1][n + 1];//de cont


for (int i = 1; i <= m; i++) {
for (int j = 0; j <= n * x; j++) {
for (int l = 1; l <= n; l++) {
dp[i][j][l] = dp[i - 1][j][l];
for (int k = 1; k <= 2 && k * prices[i - 1] <= j; k+
+) {
dp[i][j][l] = Math.max(dp[i][j][l], dp[i - 1][j
- k * prices[i - 1]][l - 1] + k * grades[0][i-1]);
}
}
}
}

return dp[m][n * x][n];


}

You might also like