class Solution:
def maxCoins(self, nums) -> int:
n = len(nums)
s = nums.copy() # 辅助数组
s = [1] + s + [1]
dp = [[0] * (n + 2) for _ in range(n + 2)]
for i in range(n - 1, -1, -1):
for j in range(i + 1, n + 2):
for k in range(i + 1, j):
dp[i][j] = max(dp[i][j], dp[i][k] + dp[k][j] + s[i] * s[k] * s[j])
return dp[0][n + 1]