考点为:前缀和。
#include<bits/stdc++.h>
using namespace std;
long long int _max=-0x7fffffff;
long long int sum[100005];
long long int _min[100005];
int main()
{
int A[100005];
long long int ans;
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&A[i]);
//前缀和 所以A数组最好从下标1开始存
for(int i=1;i<=n;i++)
sum[i]=sum[i-1]+A[i];
for(int i=1;i<=n;i++)
_min[i]=min(sum[i],_min[i-1]);
for(int j=1;j<=n;j++)
{ ans=sum[j]-_min[j]; //ans=sum[j]-sum[i-1]
if(ans>_max)
_max=ans;
}
printf("%lld\n",_max);
return 0;
}