//每个数对应一个值个数的计数,从大到小,若数目统计达到k,则把比这个数大的数都输出
//时间复杂度O(3*n)=o(n)
#include<iostream>
#include<vector>
using namespace std;
#define Max 100
#define Min 0
void input(int& i){i=rand()%100;}
void output(int& i){cout<<i<<" ";}
void f(int& i){i=0;}
int main(){
int n;cout<<"intput n\n";cin>>n;
vector<int> v(n);
for_each(v.begin(),v.end(),input);
for_each(v.begin(),v.end(),output);cout<<endl;
int k;cout<<"input k\n";cin>>k;
int a[Max];
for_each(&a[0],&a[Max],f);
for(int i=0;i<v.size();i++){
a[v[i]]++;
}
int sumCount=0;
for(int i=Max-1;i>=0;i--){
sumCount+=a[i];
if(sumCount>=k){
for(int j=0;j<v.size();j++){
if(v[j]>=i)cout<<v[j]<<" ";
}
cout<<endl;
break;
}
}
system("pause");
}