7 38 尋找大富翁 25 分

2021-09-24 00:02:24 字數 657 閱讀 3147

胡潤研究院的調查顯示,截至2023年底,中國個人資產超過1億元的高淨值人群達15萬人。假設給出n個人的個人資產值,請快速找出資產排前m位的大富翁。

輸入首先給出兩個正整數n(≤10​6​​)和m(≤10),其中n為總人數,m為需要找出的大富翁數;接下來一行給出n個人的個人資產值,以百萬元為單位,為不超過長整型範圍的整數。數字間以空格分隔。

在一行內按非遞增順序輸出資產排前m位的大富翁的個人資產值。數字間以空格分隔,但結尾不得有多餘空格。

8 3

8 12 7 3 20 9 5 18

20 18 12
首先想到的是直接排序吧(雖然有超時的風險)

#include#includeusing namespace std;

int num[1000100];

int main()

sort(num,num+n,greater)

if(n可問題是居然過了!過了!

好吧再試試堆排序(優先佇列實現)

#include#include#includeusing namespace std;

int main()

for(int i = 0;i問題又來了,優先佇列是有時超時有時不超時!╮(╯▽╰)╭這個問題有待思考之後再更吧。 

7 38 尋找大富翁 25分

胡潤研究院的調查顯示,截至2017年底,中國個人資產超過1億元的高淨值人群達15萬人。假設給出n個人的個人資產值,請快速找出資產排前m位的大富翁。輸入首先給出兩個正整數n 10 6 和m 10 其中n為總人數,m為需要找出的大富翁數 接下來一行給出n個人的個人資產值,以百萬元為單位,為不超過長整型範...

7 38 尋找大富翁

7 38 尋找大富翁 25 分 胡潤研究院的調查顯示,截至2017年底,中國個人資產超過1億元的高淨值人群達15萬人。假設給出n個人的個人資產值,請快速找出資產排前m位的大富翁。輸入格式 輸入首先給出兩個正整數n 10 6 和m 10 其中n為總人數,m為需要找出的大富翁數 接下來一行給出n個人的個...

尋找大富翁 (25 分)

胡潤研究院的調查顯示,截至2017年底,中國個人資產超過1億元的高淨值人群達15萬人。假設給出n個人的個人資產值,請快速找出資產排前m位的大富翁。輸入首先給出兩個正整數n 10 6 和m 10 其中n為總人數,m為需要找出的大富翁數 接下來一行給出n個人的個人資產值,以百萬元為單位,為不超過長整型範...