題目
點擊查看題目
胡潤研究院的調查顯示,截至2017年底,中國個人資產超過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
結尾無空行
坑點:
當m>n時,需要改變m的值
代碼:
#include <bits/stdc++.h>
using namespace std;
int a[1111111];
bool cmp(int a,int b){
return a>b;
}
int main()
{
int n,m;
cin>>n>>m;
/****************************/
if(n<m) m=n;
/****************************/
for(int i=0;i<n;i++){
cin>>a[i];
}
sort(a,a+n,cmp);
for(int i=0;i<m;i++){
if(i==m-1) cout<<a[i]<<endl;
else
cout<<a[i]<<" ";
}
return 0;
}
