添加链接描述这道题就是一道排序题,只不过问的方式稍微变了一下,其实就是将排序后的后半部分和与前半部分和相减,由于题目要求数据规模接近,并且差较大,很显然在数据规模为奇数的情况下活跃人数要比不活跃人数多一,由此便可得出以下代码。
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int n;
cin>>n;
int *a=new int[n+5];
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
sort(a,a+n);
int outg=0,inout=0;
int mid=n/2;
for(int i=0;i<mid;i++)
outg+=a[i];
for(int i=mid;i<n;i++)
inout+=a[i];
int o=(n%2==0?n/2:n/2+1);
cout<<"Outgoing #: "<<o<<endl;
cout<<"Introverted #: "<<n/2<<endl;
cout<<"Diff = "<<inout-outg;
}