我是用这题代码改的
#include<bits/stdc++.h>
using namespace std;
long long n,a[2000010],dp[2000010],dp2[2000010],maxx=-1e18;
int main(){
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=n;i++)a[n+i]=a[i];
n*=2;
dp[1]=a[1];
for(int i=2;i<=n;i++)dp[i]=max(dp[i-1]+a[i],a[i]);
for(int i=2;i<=n;i++)dp[i]=max(dp[i-1],dp[i]);
dp2[n]=a[n];
for(int i=n-1;i>=1;i--)dp2[i]=max(dp2[i+1]+a[i],a[i]);
for(int i=n-1;i>=1;i--)dp2[i]=max(dp2[i+1],dp2[i]);
for(int i=1;i<n;i++)maxx=max(maxx,dp[i]+dp2[i+1]);
cout<<maxx<<endl;
return 0;
}