排序取前m大的数
作者:互联网
题目描述:
给你n个数,请按从大到小的顺序输出前m大的数,第一行两个数你,m(0<n,m>1000000),第二行n个各不相同,都处于[-500000,500000]的整数
输入样例:
5 3
3 -35 92 213 -644
输出样例:
213 92 3
#define offest 500000 int hash[1000001]; int main() { int n,m; while(scanf("%d%d",&n,&m)!=EOF) { for(int i=-500000;i<500000;i++) { hash[i+offest]=0; } for(int i=1;i<=n;i++) { int x; scanf("%d",&x); hash[x+offest]=1; } for(int i=500000;i>-500000;i--) { if(hash[i+offest]==1) { printf("%d",i); m--; if(m!=0) printf(" "); else { printf("\n"); break; } } } } return 0; }
标签:92,hash,213,int,取前,printf,500000,排序 来源: https://www.cnblogs.com/womendouyiyang/p/11666768.html