CF1747A.Two Groups

入门

通过率:0%

时间限制:1.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given an array aa consisting of nn integers. You want to distribute these nn integers into two groups s1s_1 and s2s_2 (groups can be empty) so that the following conditions are satisfied:

  • For each ii (1≤i≤n)(1 \leq i \leq n), aia_i goes into exactly one group.

  • The value ∣sum(s1)∣−∣sum(s2)∣|sum(s_1)| - |sum(s_2)| is the maximum possible among all such ways to distribute the integers.

    Here sum(s1)sum(s_1) denotes the sum of the numbers in the group s1s_1, and sum(s2)sum(s_2) denotes the sum of the numbers in the group s2s_2.

Determine the maximum possible value of ∣sum(s1)∣−∣sum(s2)∣|sum(s_1)| - |sum(s_2)|.

给你一个包含 nn 个整数的数组 aa。你需要将这 nn 个整数分配到两个组 s1s_1 和 s2s_2 中(组可以为空),使得满足以下条件:

  • 对每个 ii(1≤i≤n1 \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)| 的最大可能值。

输入格式

The input consists of multiple test cases. The first line contains a single integer tt (1≤t≤2⋅104)(1 \leq t \leq 2 \cdot 10^4) — the number of test cases. The description of the test cases follows.

The first line of each test case contains a single integer nn (1≤n≤105)(1 \leq n \leq 10^5) — the length of the array aa.

The second line of each test case contains nn integers a1,a2…ana_1,a_2 \ldots a_n (−109≤ai≤109)(-10^9 \leq a_i \leq 10^9) — elements of the array aa.

It is guaranteed that the sum of nn over all test cases does not exceed 2⋅1052\cdot 10^5.

输入包含多个测试用例。第一行包含一个整数 tt (1≤t≤2⋅104)(1 \leq t \leq 2 \cdot 10^4),表示测试用例的数量。随后是各测试用例的描述。

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

每个测试用例的第二行包含 nn 个整数 a1,a2…ana_1,a_2 \ldots a_n (−109≤ai≤109)(-10^9 \leq a_i \leq 10^9),表示数组 aa 的元素。

保证所有测试用例的 nn 之和不超过 2⋅1052\cdot 10^5。

输出格式

For each test case, output a single integer — the maximum possible value of ∣sum(s1)∣−∣sum(s2)∣|sum(s_1)| - |sum(s_2)|.

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

输入输出样例

  • 输入#1

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

    输出#1

    0
    8
    7
    11

说明/提示

In the first testcase, we can distribute as s1=10s_1 = {10}, s2=−10s_2 = {-10}. Then the value will be ∣10∣−∣−10∣=0|10| - |-10| = 0.

In the second testcase, we can distribute as s1=0,11,−1s_1 = {0, 11, -1}, s2=−2s_2 = {-2}. Then the value will be ∣0+11−1∣−∣−2∣=10−2=8|0 + 11 - 1| - |-2| = 10 - 2 = 8.

In the third testcase, we can distribute as s1=2,3,2s_1 = {2, 3, 2}, s2=s_2 = {}. Then the value will be ∣2+3+2∣−∣0∣=7|2 + 3 + 2| - |0| = 7.

In the fourth testcase, we can distribute as s1=−9,−4,0s_1 = {-9, -4, 0}, s2=2,0s_2 = {2, 0}. Then the value will be ∣−9−4+0∣−∣2+0∣=13−2=11|-9 - 4 + 0| - |2 + 0| = 13 - 2 = 11.

在第一个测试用例中,我们可以分配为 s1=10s_1 = {10},s2=−10s_2 = {-10}。此时结果值为 ∣10∣−∣−10∣=0|10| - |-10| = 0。

在第二个测试用例中,我们可以分配为 s1=0,11,−1s_1 = {0, 11, -1},s2=−2s_2 = {-2}。此时结果值为 ∣0+11−1∣−∣−2∣=10−2=8|0 + 11 - 1| - |-2| = 10 - 2 = 8。

在第三个测试用例中,我们可以分配为 s1=2,3,2s_1 = {2, 3, 2},s2=s_2 = {}。此时结果值为 ∣2+3+2∣−∣0∣=7|2 + 3 + 2| - |0| = 7。

在第四个测试用例中,我们可以分配为 s1=−9,−4,0s_1 = {-9, -4, 0},s2=2,0s_2 = {2, 0}。此时结果值为 ∣−9−4+0∣−∣2+0∣=13−2=11|-9 - 4 + 0| - |2 + 0| = 13 - 2 = 11。

输入解题思路,AI测评打分。不知道怎么写?

首页