enlace de tema
https://pintia.cn/problem-sets/994805046380707840/problems/994805061056577536
ideas
Pensando con avidez, si primero clasificamos a estas personas de pequeñas a grandes y luego las dividimos en dos partes, entonces debe haber dos partes extremas, y debido a que es probable que los dos grupos de personas estén cerca, entonces cuando nnCuando n es un número par, divídalo directamente en dos montones del mismo número de personas; de lo contrario, deberíamos hacer queoutgoing
el número de personas en ese monto sea un poco más grande, de modo que podamos aumentar la brecha
código
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define mod 1000000007
#define endl "\n"
#define PII pair<int,int>
#define INF 0x3f3f3f3f
int n;
int main()
{
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
cin>>n;
vector<int> V(n);
for(int i = 0;i < n; ++i) cin>>V[i];
sort(V.begin(),V.end());
int l = n/2,r = n - l;
cout<<"Outgoing #: "<<r<<endl;
cout<<"Introverted #: "<<l<<endl;
int ans = 0;
for(int i = 0;i < n; ++i) {
if(i < l) ans -= V[i];
else ans += V[i];
}
cout<<"Diff = "<<ans<<endl;
return 0;
}