CF1343C.Alternating Subsequence
普及-
通过率:0%
时间限制:1.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Recall that the sequence b is a 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 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 positive and negative elements (there is no zeros in the sequence).
Your task is to choose maximum by size (length) 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, if the maximum length of alternating subsequence is k then your task is to find the maximum sum of elements of some alternating subsequence of length k.
You have to answer t independent test cases.
回忆一下,若序列 b 可通过从序列 a 中删除零个或多个元素(不改变剩余元素的相对顺序)而得到,则称 b 是 a 的一个子序列。例如,若 a=[1,2,1,3,1,2,1],则可能的子序列包括:[1,1,1,1]、[3] 和 [1,2,1,3,1,2,1],但 [3,2,3] 和 [1,1,1,1,2] 不是其子序列。
给定一个由 n 个非零整数(即全为正数或负数,不含零)构成的序列 a。
你的任务是:在该序列中选出一个长度最大的交替子序列(即每个后续元素的符号与当前元素符号相反,如“正-负-正-…”或“负-正-负-…”)。在所有满足该最大长度的交替子序列中,你需要选出元素和最大的一个。
换言之,若最长交替子序列的长度为 k,则你的任务是找出某个长度为 k 的交替子序列,使其元素之和最大。
你需要回答 t 个相互独立的测试用例。
输入格式
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 one integer n (1≤n≤2⋅105) — the number of elements in a. The second line of the test case contains n integers a1,a2,…,an (−109≤ai≤109,ai=0), where ai is the i-th element of a.
It is guaranteed that the sum of n over all test cases does not exceed 2⋅105 (∑n≤2⋅105).
输入的第一行包含一个整数 t(1≤t≤104),表示测试用例的数量。随后是 t 个测试用例。
每个测试用例的第一行包含一个整数 n(1≤n≤2⋅105),表示数组 a 中的元素个数。每个测试用例的第二行包含 n 个整数 a1,a2,…,an(−109≤ai≤109, ai=0),其中 ai 是数组 a 的第 i 个元素。
保证所有测试用例的 n 之和不超过 2⋅105(即 ∑n≤2⋅105)。
输出格式
For each test case, print the answer — the maximum sum of the maximum by size (length) alternating subsequence of a.
对于每个测试用例,输出答案——即数组 a 的最长(按长度计算)交替子序列的最大和。
输入输出样例
输入#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
输出#1
2 -1 6 -2999999997
说明/提示
In the first test case of the example, one of the possible answers is [1,2,3,−1,−2].
In the second test case of the example, one of the possible answers is [−1,−2,−1,−3].
In the third test case of the example, one of the possible answers is [−2,8,3,8,−4,−15,5,−2,−3,1].
In the fourth test case of the example, one of the possible answers is [1,−1000000000,1,−1000000000,1,−1000000000].
在示例的第一个测试用例中,一个可能的答案是 [1,2,3,−1,−2]。
在示例的第二个测试用例中,一个可能的答案是 [−1,−2,−1,−3]。
在示例的第三个测试用例中,一个可能的答案是 [−2,8,3,8,−4,−15,5,−2,−3,1]。
在示例的第四个测试用例中,一个可能的答案是 [1,−1000000000,1,−1000000000,1,−1000000000]。
输入解题思路,AI测评打分。不知道怎么写?