http://acm.hdu.edu.cn/showproblem.php?pid=3785
View Code
#include <stdio.h> #include <stdlib.h> #define INF 200000000 int cmp(const void*a,const void*b) { return *(int*)b-*(int*)a; } int a[110000]; int main() { int n,m; while(scanf("%d%d",&n,&m),(n||m)) { for(int i=0;i<100001;i++) a[i]=INF; for(int i=0;i<n;i++) scanf("%d",a+i); qsort(a,n,sizeof(int),cmp); int f=1; for(int i=0;i<m;i++) { if(a[i]==INF)continue; if(f) { printf("%d",a[i]); f=0; } else printf(" %d",a[i]); } putchar('\n'); } return 0; }