#include<stdio.h>
{
return a>b?a:b;
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
long long ret[200001]={0};
long long dp[200001];
long long sum=-1e9;
for(int i=1;i<=n;i++)
{
scanf("%lld ",&ret[i]);
}
dp[0]=-1e9;
for(int i=1;i<=n;i++)
{
dp[i]=max(dp[i-1]+ret[i],ret[i]);
sum=max(sum,dp[i]);
}
printf("%lld",sum);
}
return 0;
}
#include<string.h>
//就老老实实的写,求稳,有精力再优化
long long max(long long a,long long b){
return a>b?a:b;
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
long long ret[200001]={0};
long long dp[200001];
long long sum=-1e9;
for(int i=1;i<=n;i++)
{
scanf("%lld ",&ret[i]);
}
dp[0]=-1e9;
for(int i=1;i<=n;i++)
{
dp[i]=max(dp[i-1]+ret[i],ret[i]);
sum=max(sum,dp[i]);
}
printf("%lld",sum);
}
return 0;
}