7 11 人以群分 25分

2021-10-14 11:27:18 字數 1308 閱讀 6989

社交網路中我們給每個人定義了乙個「活躍度」,現希望根據這個指標把人群分為兩大類,即外向型(outgoing,即活躍度高的)和內向型(introverted,即活躍度低的)。要求兩類人群的規模盡可能接近,而他們的總活躍度差距盡可能拉開。

輸入格式:## 標題輸入第一行給出乙個正整數n(2≤n≤10e​5​​ )。隨後一行給出n個正整數,分別是每個人的活躍度,其間以空格分隔。題目保證這些數字以及它們的和都不會超過2e​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

題目當中有要求:

要求兩類人群的規模盡可能接近,而他們的總活躍度差距盡可能拉開。

但是怎麼分才合適呢???

開始的時候,我也糾結了老半天,後來看到別人寫的,

n為偶數,平均分人數就可。

n為奇數,為保證總活躍度差距更大,outgoing人群比introverted人群數多乙個。

這是兩個樣例給出的結果呢。

這樣子理解的話,還是比較好寫的。

#include

#include

#include

using namespace std;

intmain()

for(

int i=n-m; i)int diff=

abs(x-y)

;printf

("outgoing #: %d\nintroverted #: %d\ndiff = %d\n"

,m,n-m,diff)

;return0;

}

7 24 人以群分

社交網路中我們給每個人定義了乙個 活躍度 現希望根據這個指標把人群分為兩大類,即外向型 outgoing,即活躍度高的 和內向型 introverted,即活躍度低的 要求兩類人群的規模盡可能接近,而他們的總活躍度差距盡可能拉開。輸入第一行給出乙個正整數n 2 n 10 5 隨後一行給出n個正整數,...

7 11 互評成績(25 分)

題目鏈結 學生互評作業的簡單規則是這樣定的 每個人的作業會被k個同學評審,得到k個成績。系統需要去掉乙個最高分和乙個最低分,將剩下的分數取平均,就得到這個學生的最後成績。本題就要求你編寫這個互評系統的算分模組。輸入格式 輸入第一行給出3個正整數n 3 n 10 4,學生總數 k 3 k 10,每份作...

7 11 電話聊天狂人 25分

給定大量手機使用者聯絡歷史,找出其中通話次數最多的聊天狂人。輸入格式 輸入首先給出正整數n 10 5 為聯絡歷史條數。隨後n行,每行給出一條聯絡歷史。簡單起見,這裡只列出撥出方和接收方的11位數字構成的手機號碼,其中以空格分隔。輸出格式 在一行中給出聊天狂人的手機號碼及其通話次數,其間以空格分隔。如...