#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=10010;
int main()
{
int n,A[maxn],dp[maxn];
cin>>n; //元素个数
//读入序列
for(int i=0;i<n;i++)
{
cin>>A[i];
}
//边界
dp[0]=A[0];
for(int i=1;i<n;i++)
{
//状态转移方程
dp[i]=max(A[i],dp[i-1]+A[i]);
}
int k=0;
for(int i=1;i<n;i++)
{
if(dp[i]>dp[k])
k=i;
}
cout<<"最大子序列和为:"<<dp[k];
return 0;
}