#include<stdio.h>
#include<iostream>
using namespace std;
int max(int left,int right)
{
return left>=right?left:right;
}
int maxsum(int *x,int l,int u)
{
if(l>u) return 0;
if(l==u) return max(0,x[l]); //x[L],是L而不是 1.
int m;
m=(l+u)/2;
int lmax=0;
int sum=0;
for(int i=m;i>=l;i--)
{
sum+=x[i];
lmax=max(lmax,sum);
}
int rmax=sum=0;
for(int j=m+1;j<=u;j++)
{
sum+=x[j];
rmax=max(rmax,sum);
}
return max(lmax+rmax,max(maxsum(x,l,m),maxsum(x,m+1,u)));
}
int main()
{
int a[10]={31,-41,59,26,-53,58,97,-93,-23,84};
int max=maxsum(a,0,9);
printf("%d/n",max);
}