#include<bits/stdc++.h> using namespace std; const int N=4010; int sum[N],dp[N][N]; int n; int dp_max(){ int ans=0; for(int i=1;i<=n;i++) dp[i][i]=0; for(int len=2;len<=2*n;len++){ for(int i=1;i<=n*2-len-1;i++){ int j=i+len-1; dp[i][j]=max(dp[i+1][j],dp[i][j-1])+sum[j]-sum[i-1]; } } for(int i=1;i<=n;i++){ ans=max(ans,dp[i][i+n-1]); } 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: Accepted Time:248 ms Memory:65056 kb ****************************************************************/