Problem:
Maximum Sum Sequence

Given a sequence of numbers a1, a2, a3, ..., an, find the maximum sum of a contiguous subsequence of those numbers. Note that, a subsequence of one element is also a contiquous subsequence.

Input

The input consists of multiple datasets. Each data set consists of:

n
a1
a2
.
.
an

You can assume that 1 ≤ n ≤ 5000 and -100000 ≤ ai ≤ 100000.

The input end with a line consisting of a single 0.

Output

For each dataset, print the maximum sum in a line.

Sample Input

7
-5
-1
6
4
9
-6
-7
13
1
2
3
2
-2
-1
1
2
3
2
1
-2
1
3
1000
-200
201
0

Output for the Sample Input

19
14
1001

Solution in C (judge verdict: Time Limit Exceeded)

#include<stdio.h>
#include<limits.h>


#define DEBUG 0


int buf [5001];

/*
  100kx5k= 500M
  2^20 = 1M
*/

int sum(int begin, int end){
  int i;
  int sum=0;
  for(i=begin; i<end; i++)
    sum +=buf[i];
  return sum;
}

int find_max_sum(int count){
  int i, j;
  int max, s;
  max = INT_MIN;

  for(i = 0; i < count; i++){
    for(j = i+1; j <= count; j++){
      s = sum(i,j);
      if(s>=max) max =s;
    }
  }
  return max;
}


int main(){
  int count;
  int i;
  while((scanf("%i", &count) == 1) && count){
    if(DEBUG)
      printf("count: %d\n", count);
    for(i=0; i<count;i++){
      scanf("%i", buf+i);
      if(DEBUG)
        printf("data: %d\n", *(buf+i));
    }
    printf("%d\n", find_max_sum(count));
  }
  return 0;
}