50分,求hack
#include<bits/stdc++.h>
using namespace std;
int n,a[5005],f[2][5005];
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
a[i]+=a[i-1];
}
int flag=0;
for(int len=n-1;len>=0;len--)
{
for(int i=1;i+len<=n;i++)
{
f[flag][i]=a[n]-a[i+len]+a[i-1]-max(f[flag^1][i],f[flag^1][i-1]);
}
flag^=1;
}
flag^=1;
int ans1=1e9,ans2=0;
for(int i=1;i<=n;i++)
{
ans1=min(a[n]-f[flag][i],ans1);
ans2=max(f[flag][i],ans2);
}
if(n&1)printf("%d",ans1);
else printf("%d",ans2);
return 0;
}