社交網路中我們給每個人定義了乙個「活躍度」,現希望根據這個指標把人群分為兩大類,即外向型(outgoing,即活躍度高的)和內向型(introverted,即活躍度低的)。要求兩類人群的規模盡可能接近,而他們的總活躍度差距盡可能拉開。
輸入第一行給出乙個正整數n(2≤n≤105 )。隨後一行給出n個正整數,分別是每個人的活躍度,其間以空格分隔。題目保證這些數字以及它們的和都不會超過2
31 。
按下列格式輸出:
outgoing #: n1
introverted #: n2
diff = n3
其中n1是外向型人的個數;n2是內向型人的個數;n3是兩群人總活躍度之差的絕對值。
10238
1099
462333461
666555
outgoing #:
5introverted #:
5diff =
3611
13
11079
21869
3721
10029
1352613
5188
85
outgoing #:
7introverted #:
6diff =
9359
#include
using
namespace std;
int a[
100010];
intf
(int n)
intmain()
else
for(i=
0;i) s1+
=a[i]
;for
(i=q;i) s2+
=a[i]
; m=
abs(s1-s2)
; cout<<
"outgoing #: "
"introverted #: "
"diff = "
}
7 11 人以群分 25分
社交網路中我們給每個人定義了乙個 活躍度 現希望根據這個指標把人群分為兩大類,即外向型 outgoing,即活躍度高的 和內向型 introverted,即活躍度低的 要求兩類人群的規模盡可能接近,而他們的總活躍度差距盡可能拉開。輸入格式 標題輸入第一行給出乙個正整數n 2 n 10e 5 隨後一行...
PAT 天梯賽 L2 017 人以群分 排序
題目鏈結 思路 第乙個條件是 人群的規模盡可能接近 那麼 n 為偶數的時候 就是 一半 一半 n 為奇數的時候 就是 乙個 一半 1 乙個 一半 1 第二個條件 就是 總活躍度差距盡可能大 那麼 n 為奇數的時候 外向型的人數 就是 一半 1 內向型的人數 就是 一半 1 ac include in...
PTA 天梯賽 L2 017 人以群分(排序)
反正肯定是要先排序的對吧,然後題目說了要兩撥人人數盡可能的接近,這句話就理解成偶數個人的時候兩群人人數相等,奇數個人的時候外向的人比內向的人人數多乙個,就ok了。include include include includeusing namespace std int x 1000010 int ...