#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
int sum[200010];
int a[200010];
scanf("%d",&n);
sum[0]=0;
for(int i=1;i<=n;i++)
{
scanf("%d",a+i);
sum[i]=sum[i-1]+a[i];
}
int minn=0x3f3f3f3f,ans=-0x3f3f3f3f;//最大设最下,最小设最大。
for(int i=1;i<=n;i++)
{
minn=min(minn,sum[i-1]);
ans=max(ans,sum[i]-minn);
}
printf("%d",ans);
return 0;
}
前缀和+最大子段和
最新推荐文章于 2024-09-07 22:38:01 发布