Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- vector<int> a;
- map<pair<int, int>, int> m;
- int rec(int l, int r){
- if(m.count({l, r})){
- return m[{l, r}];
- }
- if(r - l <= 1){
- return 0;
- }
- int ans = 1e9;
- for(int i = l + 1; i < r; ++i){
- int sum = rec(l, i) + rec(i, r) + a[i] * (a[l] + a[r]);
- ans = min(ans, sum);
- }
- m[{l, r}] = ans;
- return ans;
- }
- int main() {
- ios_base::sync_with_stdio;
- cin.tie(0);
- cout.tie(0);
- int n;
- cin >> n;
- a.resize(n);
- for(int i = 0; i < n; ++i){
- cin >> a[i];
- }
- cout << rec(0, n - 1);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement