ann8497

dunjo challenge game

Aug 8th, 2019
730
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.76 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main(){
  5.    
  6.     int n; cin>>n;
  7.     int a[n];
  8.     for(int i = 0; i<n; i++)cin>>a[i];
  9.     int dp[100][100];
  10.     memset(dp, 0, sizeof(dp));
  11.     for(int i = 1; i<=n; i++)dp[i][i] = a[i-1];
  12.     for(int i = 1; i<=n-1; i++){
  13.         int k = i + 1;
  14.         dp[i][k] = max(a[i-1],a[k-1]);
  15.     }
  16.     for(int len = 3; len<=n; len++){
  17.         for(int left = 1; left<=n-len+1; left++){
  18.             int right = left + len -1;
  19.             int x = a[left-1] + max(dp[left+2][right],dp[left+1][right-1]);
  20.             int y = a[right-1] + max(dp[left][right-2],dp[left+1][right-1]);
  21.             dp[left][right] = max(x,y);
  22.                                    
  23.         }
  24.     }
  25.     cout<<dp[1][n]<<endl;
  26.     return 0;
  27. }
Add Comment
Please, Sign In to add comment