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 Python (judge verdict: Wrong Answer)

#!/usr/bin/python


def main():
    while True:
        try:
            num_data = int(raw_input())
            if num_data == 0:
                break

            data = []
            for i in xrange(num_data):
                data.append(int(raw_input()))

            max = max_sum_sequence(data)
            print(max)
        except:
            break


def max_sum_sequence(data):
    max = 0
    num_data = len(data)
    for l in xrange(1, num_data + 1):
        # print ("testing at l = " + str(l) + "..")
        sum = max_at_length(data, l)
        if sum > max:
            max = sum

    return max


def max_at_length(data, length):
    max = 0
    num_data = len(data)

    sum = None
    old_head = 0

    #print "length = " + str(length)

    while True:
        if sum is None:
            sum = 0
            for i in xrange(0, length):
                sum += data[i]
            #print "initial = " + str(sum)
            max = sum

        else:
            if old_head + length < num_data:
                #print "sum = %d - %d + %d" % (sum, data[old_head], data[old_head + length])
                sum = sum - data[old_head] + data[old_head + length]
                #print "     = " + str(sum)
                if sum > max:
                    max = sum

                old_head += 1
            else:
                break

    return max

main()