先sort,然后前n/2个元素和其余元素即为所求。
#include <cstdio>
#include <cstdlib>
#include <algorithm>
using namespace std;
int main(void)
{
int n, *arr, i, pivot, left , right;
scanf("%d", &n);
arr = new int[n];
for (i = 0; i < n; i++) {
scanf("%d", arr + i);
}
sort(arr, arr + n);
pivot = n / 2;
int n_n, s_s;
n_n = n - pivot * 2;
int sum1 = 0, sum2 = 0;
for (i = 0; i < pivot; i++) {
sum1 += arr[i];
}
for (i = pivot; i < n; i++) {
sum2 += arr[i];
}
printf("%d %d\n", n_n, sum2 - sum1);
delete[] arr;
return 0;
}