You are given a sequence a consisting of n integers. You may partition this sequence into two sequences b and c in such a way that every element belongs exactly to one of these sequences.
Let B be the sum of elements belonging to b, and C be the sum of elements belonging to c (if some of these sequences is empty, then its sum is 0). What is the maximum possible value of B - C?
The first line contains one integer n (1 ≤ n ≤ 100) — the number of elements in a.
The second line contains n integers a1, a2, ..., an ( - 100 ≤ ai ≤ 100) — the elements of sequence a.
Print the maximum possible value of B - C, where B is the sum of elements of sequence b, and C is the sum of elements of sequence c.
3
1 -2 0
3
6
16 23 16 15 42 8
120
In the first example we may choose b = {1, 0}, c = { - 2}. Then B = 1, C = - 2, B - C = 3.
In the second example we choose b = {16, 23, 16, 15, 42, 8}, c = {} (an empty sequence). Then B = 120, C = 0, B - C = 120.
题意很简单,给一个序列,然后分成A,B两个集合。然后对每个集合求和,然后两个集合做差。求个最大值。
思路:很明显的 整数在A集合,负数在B集合。
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int main(){
int n ;
cin >> n ;
int sum = 0;
int x;
for(int i = 0 ; i < n ; i++){
cin >> x;
if(x > 0)
sum += x;
else
sum -= x;
}
cout << sum << endl;
return 0;
}