Naxocist

NumberGame

Mar 27th, 2023 (edited)
594
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.50 KB | Source Code | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. using ll = long long;
  5. const int N = 503;
  6. ll ar[N], dp[N][N];
  7.  
  8. int main() {
  9.     int n;
  10.     scanf("%d", &n);
  11.  
  12.     for(int i=1; i<=n; ++i) {
  13.         scanf("%lld", &ar[i]);
  14.     }
  15.  
  16.     for(int s=3; s<=n; ++s) {
  17.         for(int l=1; l<=n; ++l) {
  18.             int r = l + s - 1;
  19.             if(r > n) break ;
  20.  
  21.             dp[l][r] = INT_MIN;
  22.  
  23.             for(int k=l+1; k<r; ++k) {
  24.                 dp[l][r] = max(dp[l][r], dp[l][k] + dp[k][r] + ar[l] + ar[r]);
  25.             }
  26.         }
  27.     }
  28.  
  29.     printf("%lld", dp[1][n]);
  30.    
  31.     return 0;
  32. }
Advertisement
Add Comment
Please, Sign In to add comment