Practice on Toph

Participate in exhilarating programming contests, solve unique algorithm and data structure challenges and be a part of an awesome community.

Alternative Subsequence: The Extension

By jisan047 · Limits 1s, 512 MB

Recall that the sequence b is a subsequence of the sequence a, if b can be derived from a by removing zero or more elements without changing the order of the remaining elements. For example, if a = [1, 2, 1, 3, 1, 2, 1], then possible subsequences of a are: [1, 1, 1, 1], [3] and [1, 2, 1, 3, 1, 2, 1], but not [3, 2, 3] and [1, 1, 1, 1, 2].

You are given a sequence a consisting of n non-zero elements.

Your task is to choose any alternating subsequence of the given sequence (i.e. the sign of each next element is the opposite from the sign of the current element, like positive-negative-positive and so on or negative-positive-negative and so on). Among all such subsequences, you have to choose one which has the maximum sum of elements.

In other words, your task is to find the maximum sum of elements of some alternating subsequence of any length (probably zero).

You have to answer t independent cases.

Input

The first line of the input contains one integer t (1 ≤ t ≤ 104) — the number of test cases. Then t test cases follow.

The first line of the test case contains an integer n (1 ≤ n ≤ 2×104) — the number of elements in a.
The second line of the test case contains n integers (−109ai ≤ 109, ai ≠ 0), where ai is the ith element of a.

It is guaranteed that the sum of n over all test cases does not exceed 2×106 (∑n ≤ 2×106).

Output

For each test case, print the answer — the maximum sum of alternating subsequence of a.

Sample

InputOutput
2
2
1 2
3
2 -1 3
2
4

Discussion

Statistics


58% Solution Ratio

Riaz_BSMRSTUEarliest, 4w ago

RamprosadGFastest, 0.1s

Riaz_BSMRSTULightest, 131 kB

MehrabShortest, 359B

Submit

Login to submit