1113 Integer Set Partition (25 分)

1113 Integer Set Partition (25 分)
 

Given a set of N (>) positive integers, you are supposed to partition them into two disjoint sets A1​​ and A2​​ of n1​​ and n2​​ numbers, respectively. Let S1​​ and S2​​ denote the sums of all the numbers in A1​​ and A2​​, respectively. You are supposed to make the partition so that ∣ is minimized first, and then ∣ is maximized.

Input Specification:

Each input file contains one test case. For each case, the first line gives an integer N (2), and then Npositive integers follow in the next line, separated by spaces. It is guaranteed that all the integers and their sum are less than 231​​.

Output Specification:

For each case, print in a line two numbers: ∣ and ∣, separated by exactly one space.

Sample Input 1:

10
23 8 10 99 46 2333 46 1 666 555

Sample Output 1:

0 3611

Sample Input 2:

13
110 79 218 69 3721 100 29 135 2 6 13 5188 85

Sample Output 2:

1 9359
 
排个序,判个奇偶
 
 1 #include <bits/stdc++.h>
 2 
 3 using namespace std;
 4 int n, an[200005];
 5 int main(){
 6     cin >> n;
 7     for(int i = 0; i < n; i++){
 8         cin >> an[i];
 9     }
10     sort(an, an+n);
11     int ans = 0, cnt = 0;
12     for(int i = 0; i < n/2; i++){
13         ans += an[i];
14     }
15     for(int i = n/2; i < n; i++){
16         cnt += an[i];
17     }
18     cout << (n&1) <<" "<<cnt-ans<<endl;
19     return 0;
20 }
 
 

猜你喜欢

转载自www.cnblogs.com/zllwxm123/p/11334541.html
今日推荐