A31323.摇摇晃摇

入门

官方

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

给你一个由 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n 组成的数组。这些整数不是 11 就是 1-1 。你必须对数组 aa 执行一次以下操作:

  • 选择一个索引 ii ( 1in1 \leq i \leq n ),然后翻转 aia_iai+1a_{i+1} 的符号。翻转符号会将数值从1-1 变为 11 或者将 11 变为 1-1

进行上述运算后, a1+a2++ana_1 + a_2 + \ldots + a_n 的最大值是多少?

输入格式

每个测试包含多个测试用例。第一行包含测试用例的数量 tt ( 1t5001 \le t \le 500 )。测试用例说明如下。

每个测试用例的第一行包含一个整数 nn ( 2n1052 \le n \le 10^5 ),即数组的长度 aa

下一行包含 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_nai=1a_i = 1ai=1a_i = -1 )。

所有情况下 nn 的总和不超过 10510^5

输出格式

对于每个测试用例,单独一行打印数组 aa 的最大总和。

输入输出样例

  • 输入#1

    4
    5
    -1 1 1 -1 -1
    5
    1 1 -1 -1 -1
    2
    1 1
    4
    1 -1 -1 1

    输出#1

    3
    3
    -2
    4

说明/提示

在第一种情况下,我们可以选择索引 44 ,然后翻转 a4a_4a5a_5 的符号。操作完成后,总和为 1+1+1+1+1=3-1+1+1+1+1 = 3

在第三种情况下,我们只能选择索引 11

首页