题目大意:
把n个数划分成两个集合,要求两个集合内部数总和的差值最大,集合大小的差值最小。
解题思路:
水题,排序分两边。
代码如下:
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<set>
using namespace std;
int main()
{
int sum1=0,sum2=0,n,data[100100]={0};
scanf("%d",&n);
for(int i=0;i<n;i++)scanf("%d",&data[i]);
sort(data,data+n);
if(n%2)printf("1 ");
else printf("0 ");
for(int i=0;i<n;i++)
{
if(i<n/2)sum1+=data[i];
else sum2+=data[i];
}
printf("%d\n",sum2-sum1);
return 0;
}