fork download
  1. #include <bits/stdc++.h>
  2. #define ll long long
  3. using namespace std;
  4.  
  5.  
  6.  
  7. ll matrixMul(int start, int end, vector<int> &arr) {
  8.  
  9. if(start == end) {
  10. return 0;
  11. }
  12.  
  13. ll minCost = INT_MAX;
  14. for(int i = start; i < end; i++) {
  15. ll cost = (arr[start - 1] * arr[i] * arr[end]) + matrixMul(start, i, arr) + matrixMul(i + 1, end, arr);
  16. minCost = min(minCost, cost);
  17. }
  18.  
  19. return minCost == INT_MAX? 0: minCost;
  20. }
  21.  
  22. int main() {
  23. vector<int> arr;
  24. int n;
  25. cin>> n;
  26. for(int i = 0; i < n; i++) {
  27. int ele;
  28. cin>> ele;
  29. arr.push_back(ele);
  30. }
  31.  
  32. cout<< matrixMul(1, n - 1, arr);
  33. return 0;
  34. }
  35.  
  36.  
Success #stdin #stdout 0.01s 5308KB
stdin
5
1
2
3
4
3
stdout
30