简单的哈希表应用,对每个元素给一个映射地址,然后从后往前搜索,若h[i]!=0 就输出。 #include<iostream> using namespace std; int h[1000001]; int main() { int n,m; while(scanf("%d%d",&n,&m)!=EOF) { fill(h,h+1000000+1,0); int i,a; for(i=0;i<n;i++) { scanf("%d",&a); h[a+500000]=1; } int cnt=0; for(i=1000000;;i--) { if(cnt==m) break; if(h[i]!=0) { if(cnt!=0) printf(" "); printf("%d",i-500000); cnt++; } } printf("/n"); } return 0; }