Compute dp[i] for i∈[0,7]. Optimal splits are monotonic. Start with range [0,7]. Compute dp[3] (midpoint). Find opt[3] by trying all valid splits. Say opt[3]=5. Recurse on [0,2] with constraint opt∈[0,5]. Recurse on [4,7] with constraint opt∈[5,n].
Each level does O(n) work total (all ranges at that level partition the search space). O(logn) levels gives O(nlogn).