CF1791E.Negatives and Positives

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Negatives and Positives

题目描述

给定一个包含 nn 个元素的数组 aa,你可以进行如下操作任意次:

  • 选择 22 个相邻的元素,并将它们的符号都翻转。也就是说,选择一个下标 ii,满足 1in11 \leq i \leq n-1,然后令 ai=aia_i = -a_iai+1=ai+1a_{i+1} = -a_{i+1}

请你求出经过任意次上述操作后,数组可能获得的最大和。

输入格式

输入包含多组测试数据。第一行包含一个整数 tt1t10001 \leq t \leq 1000),表示测试用例的数量。

每个测试用例的第一行包含一个整数 nn2n21052 \leq n \leq 2\cdot10^5),表示数组的长度。

接下来一行包含 nn 个用空格分隔的整数 a1,a2,,ana_1, a_2, \dots, a_n109ai109-10^9 \leq a_i \leq 10^9)。

保证所有测试用例中 nn 的总和不超过 21052\cdot10^5

输出格式

对于每个测试用例,输出经过任意次操作后数组可能获得的最大和。

说明/提示

对于第一个测试用例,通过对前两个元素进行操作,可以将数组从 [1,1,1][-1, -1, -1] 变为 [1,1,1][1, 1, -1],可以证明这个数组获得的最大和为 1+1+(1)=11 + 1 + (-1) = 1

对于第二个测试用例,通过对 5-500 进行操作,可以将数组从 [1,5,5,0,2][1, 5, -5, 0, 2] 变为 [1,5,(5),0,2]=[1,5,5,0,2][1, 5, -(-5), -0, 2] = [1, 5, 5, 0, 2],此时所有元素都非负,和最大,为 1+5+5+0+2=131 + 5 + 5 + 0 + 2 = 13

对于第三个测试用例,数组已经全为正数,无需操作,答案就是整个数组的和,即 1+2+3=61 + 2 + 3 = 6

由 ChatGPT 4.1 翻译

样例

5
3
-1 -1 -1
5
1 5 -5 0 2
3
1 2 3
6
-1 10 9 8 7 6
2
-1 -1
1
13
6
39
2

在线编程 IDE

建议全屏模式获得最佳体验