思路:
先按由小到大的顺序进行排序。如果是偶数就直接对半分;如果实际数就把大的一份给活跃的;
没啥好说的,没有涉及数据结构emmm
#include<iostream>
#include<algorithm>
using namespace std;
int book[100010];
int sum(int a, int b)
{
int t=0;
for (int i = a; i <= b; i++)
{
t += book[i];
}
return t;
}
int main()
{
int n, n1, n2, dif;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> book[i];
}
sort(book, book + n);
if (n % 2 == 0)
n1 = n2 = n / 2;
else
{
n1 = n / 2;
n2 = n / 2 + 1;
}
dif = sum(n / 2, n - 1) - sum(0, n / 2 - 1);
printf("Outgoing #: %d\n", n2);
printf("Introverted #: %d\n", n1);
printf("Diff = %d", dif);
system("pause");
return 0;
}