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 Haskell (judge verdict: Time Limit Exceeded)

import Control.Applicative

import Control.Monad
    (replicateM, when)
    
type Set = [Int]

type Problem = (Int, Set)

type Result = Int

solve :: Problem -> Result

solve (n, set)
    = maximum subs where
        subs = [maximum [sum $ take y $ drop x set | y <- [1..(n - x)]] | x <- [0..(n - 1)]]
        
output :: Result -> String

output
    = show
    
input :: Int -> IO Set

input n
    = replicateM n $ read <$> getLine
    
check :: IO Int

check
    = read <$> getLine
    
main :: IO ()

main
    = do
        n <- check
        when (n /= 0) $ do
            set <- input n
            putStrLn $ output $ solve (n, set)
            main