L2-017 人以群分 (25分) 详解

 

思路:

先按由小到大的顺序进行排序。如果是偶数就直接对半分;如果实际数就把大的一份给活跃的; 

没啥好说的,没有涉及数据结构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;
}

猜你喜欢

转载自blog.csdn.net/weixin_43535668/article/details/104537818