胡潤研究院的調查顯示,截至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個人的個人資產值,以百萬元為單位,為不超過長整型範...