#include <bits/stdc++.h>
using namespace std;
long long a[50050],sum[50050];
int main()
{
long long n,i,ans,mnsum,mxsum;
while(cin>>n)
{
sum[0]=0;
for(i=1;i<=n;i++)
{
scanf("%lld",&a[i]);
sum[i]=sum[i-1]+a[i];
}
ans=0;
mnsum=0;
mxsum=-(1<<30);
for(i=1;i<=n;i++)
{
ans=max(ans,sum[i]-mnsum);
ans=max(ans,sum[n]-sum[i]+mxsum);
mnsum=min(mnsum,sum[i]);
mxsum=max(mxsum,sum[i]);
}
printf("%lld\n",ans);
}
}
51nod 1050 循环数组最大子段和
最新推荐文章于 2020-11-16 23:00:45 发布