6. [20 points] Let A be an array of $n$ numbers. Consider the problem of finding the maximum sum of any contiguous subarray. For example, if the items of A are -3, 2, 4, -5, 3, 2, -1, 4, the contiguous array with the maximum sum is 2, 4, -5, 3, 2, -1, 4; If the items of A are -5, 3, -2, 4, 6, -8, 1, -3, 5 then the answer is 3, -2, 4, 6. There are at four three known algorithms for this problem:
(a) An exhaustive algorithm which takes $O(n^3)$ time.
(b) A slightly more intelligent algorithm which takes $O(n^2)$ time.
(c) A rather clever divide and conquer algorithm, which takes $O(n \log n)$ time.
(d) A sophisticated dynamic programming algorithm which takes $O(n)$ time.
Describe an algorithm for this problem, the fastest one you can find.