#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<string>
#include<cstring>
#include<deque>
#define int long long
using namespace std;
typedef long long ll;
inline ll read(){
ll f=1,sum=0;char c=getchar();
while(!isdigit(c)) {if(c=='-') f=-1;c=getchar();}
while(isdigit(c)) {sum=sum*10+c-'0';c=getchar();}
return sum*f;
}
int a[3005];
int dp[3005][3005];
signed main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int len=1;len<=n;len++){
for(int l=1;l+len-1<=n;l++){
int r=l+len-1;
if((n-len)%2==1) dp[l][r]=max(dp[l+1][r]+a[l],dp[l][r-1]+a[r]);
else dp[l][r]=min(dp[l+1][r]-a[l],dp[l][r-1]-a[r]);
}
}
cout<<-1*dp[1][n];
return 0;
}
一开始样例都是正的输出负的,负的输出正的,乘个-1过了,麻烦大佬解答,会关