0
已采纳
#include<iostream>
#include<cstdio>
#define INF 0x3f3f3f3f
using namespace std;
int n,a[110];
int g(int l,int r){
int mid=(l+r)/2;
int sum1=0,sum2=0,maxl=-INF,maxr=-INF;
for(int i=mid;i>=l;i--){
sum1+=a[i];
maxl=max(maxl,sum1);
}
for(int i=mid+1;i<=r;i++){
sum2+=a[i];
maxr=max(maxr,sum2);
}
return maxl+maxr;
}
int f(int l,int r){
if(l==r) return a[l];
int mid=(l+r)/2;
int maxl=f(l,mid),maxr=f(mid+1,r),maxm=g(l,r);
return max(max(maxl,maxr),maxm);
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
cout<<f(1,n);
return 0;
}
@刘乐宸
