CF1747A.Two Groups

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

Two Groups

题目描述

给定一个包含 nn 个整数的数组 aa。你需要将这 nn 个整数分成两个组 s1s_1s2s_2(组可以为空),使得满足以下条件:

  • 对于每个 ii (1in)(1 \leq i \leq n)aia_i 恰好属于一个组。
  • sum(s1)sum(s2)|sum(s_1)| - |sum(s_2)| 的值在所有分组方式中最大。这里 sum(s1)sum(s_1) 表示组 s1s_1 中所有数的和,sum(s2)sum(s_2) 表示组 s2s_2 中所有数的和。

请你求出 sum(s1)sum(s2)|sum(s_1)| - |sum(s_2)| 的最大可能值。

输入格式

输入包含多组测试数据。第一行包含一个整数 tt (1t2104)(1 \leq t \leq 2 \cdot 10^4),表示测试用例的数量。接下来是每个测试用例的描述。

每个测试用例的第一行包含一个整数 nn (1n105)(1 \leq n \leq 10^5),表示数组 aa 的长度。

第二行包含 nn 个整数 a1,a2,,ana_1,a_2,\ldots,a_n (109ai109)(-10^9 \leq a_i \leq 10^9),表示数组 aa 的元素。

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

输出格式

对于每个测试用例,输出一个整数,表示 sum(s1)sum(s2)|sum(s_1)| - |sum(s_2)| 的最大可能值。

说明/提示

在第一个测试用例中,可以分组为 s1={10}s_1 = \{10\}s2={10}s_2 = \{-10\}。此时值为 1010=0|10| - |-10| = 0

在第二个测试用例中,可以分组为 s1={0,11,1}s_1 = \{0, 11, -1\}s2={2}s_2 = \{-2\}。此时值为 0+1112=102=8|0 + 11 - 1| - |-2| = 10 - 2 = 8

在第三个测试用例中,可以分组为 s1={2,3,2}s_1 = \{2, 3, 2\}s2={}s_2 = \{\}。此时值为 2+3+20=7|2 + 3 + 2| - |0| = 7

在第四个测试用例中,可以分组为 s1={9,4,0}s_1 = \{-9, -4, 0\}s2={2,0}s_2 = \{2, 0\}。此时值为 94+02+0=132=11|-9 - 4 + 0| - |2 + 0| = 13 - 2 = 11

由 ChatGPT 4.1 翻译

样例

4
2
10 -10
4
-2 -1 11 0
3
2 3 2
5
-9 2 0 0 -4
0
8
7
11

在线编程 IDE

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