51nod 1050 循环数组最大子段和

来源:互联网 发布:python如何做抢票软件 编辑:程序博客网 时间:2024/05/23 02:26
#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);}}

0 0
原创粉丝点击