#include<bits/stdc++.h>
using namespace std;
int a[]={-1,-3,3,5,-4,3,2,-2,3,6};
int n=10;
int cdq(int l,int r){
if(l==r){
return max(a[l],0);
}
int mid=(l+r)/2;
int u=cdq(0,mid);
int v=cdq(mid+1,r);
int lsum=0,lm=0;
for(int i=mid;i>=0;i--){
lsum+=a[i];
lm=max(lsum,lm);
}
int rsum=0,rm=0;
for(int i=mid+1;i<n;i++){
rsum+=a[i];
rm=max(rsum,rm);
}
int w=lm+rm;
return max({u,v,w});
}
int main(){
cout<<cdq(0,9);
return 0;
}
—— 本文来自火龙信奥(义乌睿码科技):义乌青少年信息学奥赛与编程教育平台,专注 CSP-J/S、NOIP、GESP 竞赛培训,线上线下融合教学,助力编程升学。网址:hlcoding.com