Advertisement
LADY_PLEASURER_2001

ЧОЫ НА ЛЕЧЕНИЕ

Oct 20th, 2018
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.57 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. const int INF = 1e9;
  4. int dp[111][111];
  5. int a[100];
  6. void zapolnenie(int N){
  7.     for (int i = 0; i < N - 1; ++i){
  8.         dp[i][i + 1] = 0;
  9.         dp[i][i] = 0;
  10.     }
  11.  
  12.  
  13.     for (int len = 3; len <= N; ++len){
  14.         for (int l = 0; l + len <= N; ++l){
  15.             int r = len + l - 1;
  16.             dp[l][r] = INF;
  17.             for (int t = l + 1; t < r; ++t){
  18.                 dp[l][r] = min(dp[l][r], dp[l][t] + dp[t][r] + a[t] * (a[l] + a[r]));
  19.             }
  20.         }
  21.     }
  22. }
  23. int main() {
  24.     int N;
  25.     cin >> N;
  26.     for (int i = 0; i < N; ++i){
  27.         cin >> a[i];
  28.     }
  29.     zapolnenie(N);
  30.     cout << dp[0][N - 1];
  31. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement