//一直运行超时???二分试试看
// #include <cstdio>
// #include <iostream>
// using namespace std;
// int MaxSubseqSum1(int List[],int N) {
// int i, j;// k;
// int ThisSum, MaxSum = 0;
// for (int i = 0; i < N; i++) {
// ThisSum = 0;
// for (int j = i; j < N; j++) {
// //ThisSum是从List[i]到List[j]的子列和
// //for (int k = i; k <= j; k++)
// ThisSum += List[j];
// if (ThisSum > MaxSum)//如果刚得到的这个子列和更大
// MaxSum = ThisSum;//则更新结果
// }//j循环结束
// }//i循环结束
// return MaxSum;
// }
// int main() {
// int n;
// cin >> n;
// int list[100010];
// for (int i = 0; i < n; i++) {
// scanf("%d",&list[i]);
// }
// cout<<MaxSubseqSum1(list,n);
// return 0;
// }
//16分
/*
给定K个整数组成的序列{N1,N2....Nk}
连续子列被定义为{Ni,Ni+1...Nj}
其中1<=i<=j<=k
最大子列和:所有连续子列元素的和中最大者
例如:序列{-2,11,-4,13,-5,-2}
其中连续子列{11,-4,13}有最大的和20
现给你一个序列,让你求给定整数序列的最大子列和
*/
/*
输入第1行给出正整数K (≤100000);第2行给出K个整数,其间以空格分隔。
6
//-2 11 -4 13 -5 -2
// 1 2 3 4 5 6
//(1+6)*6/2=7*3=21
*/
/*
在一行中输出最大子列和。如果序列中所有整数皆为负数,则输出0。
20
*/
#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;
bool cmp(int a,int b){
return a>b;
}
int main(){
int k;
cin>>k;
int t=k,num[k];
int mm=((1+k)*k)/2;
int all_sum[mm]={0},tt=0;//{0}
for(int i=0;i<t;i++){
scanf("%d",&num[i]);
}
for(int i=0;i<k;i++){
int sum=num[i];
for(int j=i+1;j<k;j++){//01 02 03....
sum=sum+num[j];
all_sum[tt++]=sum;
}
}
sort(all_sum,all_sum+mm,cmp);
cout<<all_sum[0];
return 0;
}