#include #include #include using namespace std;

int main() { int N; cin >> N;

vector<int> active(N);
for (int i = 0; i < N; i++) {
    cin >> active[i];
}

sort(active.begin(), active.end());

int outgoing = 0;
int introverted = 0;
int diff = 0;

for (int i = 0; i < N / 2; i++) {
    introverted += active[i];
}
for (int i = N / 2; i < N; i++) {
    outgoing += active[i];
}

diff = outgoing - introverted;
if (diff < 0) {
    diff = -diff;
}

cout << "Outgoing #: " << N - N/2 << endl;
cout << "Introverted #: " << N/2 << endl;
cout << "Diff = " << diff << endl;

return 0;
用c++书写这个程序:社交网络中我们给每个人定义了一个活跃度现希望根据这个指标把人群分为两大类即外向型outgoing即活跃度高的和内向型introverted即活跃度低的。要求两类人群的规模尽可能接近而他们的总活跃度差距尽可能拉开。输入格式:输入第一行给出一个正整数N2≤N≤10 5 。随后一行给出N个正整数分别是每个人的活跃度其间以空格分隔。题目保证这些数字以及它们的和都不会超过2 31 。输

原文地址: http://www.cveoy.top/t/topic/hTzq 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录