1. class Solution:
    2. """
    3. @param A: An integer array
    4. @return: An integer
    5. """
    6. def stoneGame(self, A):
    7. # write your code here
    8. if not A:
    9. return 0
    10. n = len(A)
    11. dp = [[float("inf")] * n for _ in range(n)]
    12. dp[0][0] = 0
    13. for i in range(n):
    14. for j in range(i, -1, -1):
    15. if i == j:
    16. dp[j][i] = 0
    17. else:
    18. s = sum(A[j:i+1])
    19. for k in range(j, i):
    20. dp[j][i] = min(dp[j][i], dp[j][k] + dp[k+1][i] + s)
    21. return dp[0][-1]