九度教程第十一题
#include <stdio.h>
#define OFFSET 500000
int Hash[1000001];
int main(){
int n, m;
while(~scanf("%d %d",&n,&m)) {
for(int i = -500000;i <= 500000;i ++)
{
Hash[i + OFFSET] = 0;
} //初始化将每个数字都标记为未出现
for(int i = 1;i <= n;i ++)
{
int x;
scanf("%d",&x);
Hash[x + OFFSET] = 1;//凡是出现过的数字,该数组元素均被设置成1
}
for(int i = 500000;i >= -500000;i --)
{
if(Hash[i + OFFSET] == 1)//若该数字出现
{ printf("%d",i);m --; //则输出此数据
// m --;
// printf("fsdgsfgs");
if(m != 0)
printf(" ");//m个数为输出完毕则输出一个空格
else
{printf("\n");break;}
}
}
}
return 0;
}