//采用优先队列,底层原理是大根堆 #include "stdio.h" #include "queue" using namespace std; int main(){ int n,m;//n为镇上人数,m为要找的大富翁数 priority_queue<int> myPQueue; int temp; while(scanf("%d%d",&n,&m) != EOF){ if(n==0 && m==0) break; for(int i=0; i<n; ++i){ scanf("%d",&temp); myPQueue.push(temp); } if(n >= m){ for(int i=0; i<m; ++i){ printf("%d ",myPQueue.top()); myPQueue.pop(); } }else{ for(int i=0; i<n; ++i){ printf("%d ",myPQueue.top()); myPQueue.pop(); } } printf("\n"); } }