2
public int maxSizeSlices(int[] slices) {4
return Math.max(helper(slices, n / 3, 0, n - 2), helper(slices, n / 3, 1, n - 1));7
private int helper(int[] slices, int rounds, int start, int end) {8
int n = end - start + 1, max = 0;9
int[][][] dp = new int[n][rounds + 1][2];10
dp[0][1][1] = slices[start];11
for (int i = start + 1; i <= end; i++) {13
for (int j = 1; j <= rounds; j++) {14
dp[x][j][0] = Math.max(dp[x - 1][j][0], dp[x - 1][j][1]);15
dp[x][j][1] = dp[x - 1][j - 1][0] + slices[i];17
max = Math.max(max, Math.max(dp[x][j][0], dp[x][j][1]));