#P13. Concate and count
Concate and count
Concate and count
时间限制:
空间限制:
题目描述
有一个由 个非零整数组成的序列 。选择若干给定序列的子序列,并满足正负相间(即每个下一个元素的符号与当前元素的符号相反,如 ,或 等等)且长度最大,记长度为 。若有多个长度最长的满足要求的子序列,在所有长度 的这些正负相间的子序列中,选择元素总和最大的一个并输出总和。
数据格式
输入
第一行输入一个整数 ,表示共有 组测试用例;
对于每个测试用例,第一行输入一个正整数 ,表示数组 的长度;
接下来一行输入 个数字 表示数组 的元素。
输出
对于每个测试用例,输出一行一个整数,即最大正负相间的子序列的最大元素总和。
样例1
输入:
4
5
1 2 3 -1 -2
4
-1 -2 -1 -3
10
-2 8 3 8 -4 -15 5 -2 -3 1
6
1 -1000000000 1 -1000000000 1 -1000000000
输出:
2
-1
6
-2999999997
样例解释
- 在第一个样例中,选择的数据为 。
- 在第二个样例中,选择的数据为 。
- 在第三个样例中,选择的数据为 。
- 在第四个样例中,所有数据均选择。
数据范围及约定
测试点编号 | 约定 | 测试点分值 |
---|---|---|
1~2 | 每个测试点 10 分 | |
3~5 | $t=1,1 \leq n \leq 2*10^5,−10^9 \leq ai \leq 10^9,ai≠0$ | |
5~10 | $t \leq 10^4,1 \leq n \leq 2*10^5,−10^9 \leq ai \leq 10^9,ai≠0$ |
约定:对于所有测试用例,有 。