- Practice
- Algorithms
- Dynamic Programming
- The Maximum Subarray

# The Maximum Subarray

# The Maximum Subarray

We define *subsequence* as any subset of an array. We define a *subarray* as a *contiguous subsequence* in an array.

Given an array, find the maximum possible sum among:

- all nonempty subarrays.
- all nonempty subsequences.

Print the two values as space-separated integers on one line.

**Note** that empty subarrays/subsequences should not be considered.

**Input Format**

The first line of input contains a single integer , the number of test cases.

The first line of each test case contains a single integer .

The second line contains space-separated integers denoting the elements of .

**Constraints**

*The subarray and subsequences you consider should have at least one element.*

**Output Format**

Print two space-separated integers denoting the maximum sums of nonempty subarrays and nonempty subsequences, respectively.

**Sample Input 0**

```
2
4
1 2 3 4
6
2 -1 2 3 4 -5
```

**Sample Output 0**

```
10 10
10 11
```

**Explanation 0**

*In the first case:* The maximum sum for both types of subsequences is just the sum of all the elements since they are all positive.

*In the second case:* The subarray is the subarray with the maximum sum, and is the subsequence with the maximum sum.