利用计数查找来寻找数据
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int a[1000005];
int main(){
int n,m;
scanf("%d %d",&n,&m);
memset(a,0,sizeof(a));
if(m > n)m = n;
int value;
for(int i = 0 ;i < n ;i++){
scanf("%d",&value);
a[value]++;
}
int t = 0;
for(int i = 1000000 ;i >= 0&&t < m ;i--){
if(a[i]){
for(int j = 0 ;j < a[i]&&t<m ;j++){
if(t == m-1){
printf("%d\n",i);
t++;
}else{
printf("%d ",i);
t++;
}
}
}
}
return 0;
}