日常小练习不会做,试了很多次都是爆零,哪位能指导下。

题目描述
给定一个长度为 n 的整数数组 a1,a2,…,an。

现在,需要你对数组中的每个元素进行分类。

每个元素要么划分至 b 类,要么划分至 c 类。

我们设所有 b 类元素的相加之和为 sumb,所有 c 类元素的相加之和为 sumc。

请你计算 sumb−sumc 的最大可能值。

如果某类元素的个数为 0,则该类元素的相加之和视为 0。

输入格式
第一行包含整数 n。

第二行包含 n 个整数 a1,a2,…,an。

输出格式
输出一个整数,表示 sumb−sumc 的最大可能值。

输入输出样例
输入
3
1 -2 0
输出
3
说明/提示
前三个测试点满足 1≤n≤10。

所有测试点满足 1≤n≤100,−100≤ai≤100。

考虑把所有正数放在一堆,所有负数放在一堆,相减即可。
也就是输出所有数的绝对值总和即可

#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

int n, a[100005], ans;

int main()
{
    cin >> n;
    for (int i = 1; i <= n; i++) cin >> a[i], ans += abs(a[i]);
    cout << ans << endl;
}

把你写的代码发出来,帮你查看一下问题。

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632