7 38 尋找大富翁 25分

2021-10-02 16:56:56 字數 719 閱讀 3592

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

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

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

838

127320

9518

20

1812

本題對排序效率要求比較高,stl裡的sort排序並不能滿足其時間限制。

可能會有n>>m,而輸出只有m項,所以我們可以僅保留最大的前m項,想用優先佇列輸出為最大值的逆序,所以用棧將其翻轉。想過用以deque為容器的優先佇列可能是我不會用,沒能實現。

#include

#include

#include

using

namespace std;

intmain()

while

(!p.

empty()

)for

(int i =

0; i < m;

++i)

return0;

}

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個人的個人資產值,以百萬元為單位,為不超過長整型範...