fork download
  1. import sys
  2.  
  3. def main():
  4. input_data = sys.stdin.read().split()
  5. if not input_data:
  6. return
  7.  
  8. dims = list(map(int, input_data))
  9. n = len(dims) - 1
  10.  
  11. dp = [[0] * (n + 1) for _ in range(n + 1)]
  12.  
  13. for i in range(1, n):
  14. for s in range(1, n - i + 1):
  15. e = s + i
  16. dp[s][e] = float('inf')
  17. for k in range(s, e):
  18. cost = dp[s][k] + dp[k+1][e] + dims[s-1] * dims[k] * dims[e]
  19. if cost < dp[s][e]:
  20. dp[s][e] = cost
  21.  
  22. print(dp[1][n])
  23.  
  24. if __name__ == '__main__':
  25. main()
Success #stdin #stdout 0.1s 14104KB
stdin
4 9 2 12 5 20
stdout
552