dp(row, col1, col2) that returns the maximum number of cherries that can be collected from the current state.row is the last row, return the cherries at (row, col1) and (row, col2), taking care not to double count if col1 == col2.dp for the next row and updated column positions.dp(0, 0, cols - 1) to start the recursion from the top row with robots at the top-left and top-right corners.