#include<bits/stdc++.h> using namespace std; const int N=4010; int sum[N],dp[N][N]; int n; int dp_max(){ int ans=INT_MIN; for(int i=1;i<=n;i++) dp[i][i]=0; for(int j=1;j<=2*n;j++){ for(int i=j-1;i>=1;i--){ dp[i][j]=-0x3f3f3f3f; for(int k=i;k<j;k++) dp[i][j]=max(dp[i][j],dp[i][k]+dp[k+1][j]+sum[j]-sum[i-1]); } } for(int i=1;i<=n;i++){ ans=max(ans,dp[i+1][i+n]); } return ans; } int main(){ ios::sync_with_stdio(false); cin.tie(0); cin>>n; for(int i=1;i<=n;i++){ cin>>sum[i];sum[i+n]=sum[i]; } for(int i=1;i<=2*n;i++) sum[i]+=sum[i-1]; cout<<dp_max(); return 0; } /************************************************************** Problem: 2117 User: liangshinan Language: C++ Result: Time Limit Exceed ****************************************************************/