有大佬能帮忙调一下吗,万分感激!!!
#include<bits/stdc++.h>
using namespace std;
int a[405];
int dp[2][405][405];//0:max 1:min
int sa[405];
int n;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
a[n+i]=a[i];
}
memset(dp[0],0x80,sizeof(dp[0]));
memset(dp[1],0x3f,sizeof(dp[1]));
for(int i=1;i<=2*n;i++){
for(int j=0;j<=1;j++){
dp[j][i][i+1]=a[i];
}
sa[i]=sa[i-1]+a[i];
}
for(int i=2;i<=n;i++){
for(int l=1;l<=n;l++){
int r=l+i;
for(int j=l+1;j<r;j++){
dp[0][l][r]=max(dp[0][l][r],dp[0][l][j]+dp[0][j][r]+sa[r-1]-sa[l-1]);
dp[1][l][r]=min(dp[1][l][r],dp[1][l][j]+dp[1][j][r]+sa[r-1]-sa[l-1]);
}
}
}
int ansx=-1;
int ansn=0x7f7f7f7f;
for(int l=1;l<=n;l++){
ansx=max(ansx,dp[0][l][l+n]);
ansn=min(ansn,dp[1][l][l+n]);
}
cout<<ansn-sa[n]<<endl<<ansx-sa[n]<<endl;
return 0;
}