如此简单的一道题,刚开始被我想错了,错写了一堆东西…真担心过几天考试啊…叹气…
思路:
1.用数组存储,然后升序排序;
2.分为[0,n/2)和[n/2,n-1]两个子集就好了;
3.奇数个数第一个输出1,偶数个数第一个输出0;
代码:
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
vector<int> v;
int main(){
int n,num;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&num);
v.push_back(num);
}
sort(v.begin(),v.end());
int sum=0;
for(int i=0;i<n/2;i++) sum+=v[n-1-i]-v[i];
if(n%2==0) printf("%d %d",0,sum);
else printf("%d %d",1,sum+v[n/2]);
return 0;
}