代码改变世界

hdu 1425 sort ---- hash入门

2012-03-11 17:56  java环境变量  阅读(216)  评论(0编辑  收藏  举报

sort

Time Limit: 6000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 14896    Accepted Submission(s): 4274


Problem Description
给你n个整数,请按从大到小的顺序输出其中前m大的数。
 

Input
每组测试数据有两行,第一行有两个数n,m(0<n,m<1000000),第二行包含n个各不相同,且都处于区间[-500000,500000]的整数。
 

Output
对每组测试数据按从大到小的顺序输出前m大的数。
 

Sample Input
5 3 3 -35 92 213 -644
 

Sample Output
213 92 3

            最浅显的hash,AC此题的目的完全是说明一下我开始准备学习hash 了。。。 -  -      想鄙视的不拒绝 哈哈

// status_AC time_328 MS
#include<stdio.h>
#include<string.h>
int hash[1001000];
int main()
{
	int n,m,k,i;
	while(scanf("%d%d",&n,&m)!=EOF)
	{
		memset(hash,0,sizeof(hash));
		for(i=0;i<n;i++)
		{ scanf("%d",&k); hash[k+500000]=1;}
		for(i=1000010;i>=0;i--)
		{
			if(hash[i]) 
			{
			    printf("%d",i-500000);
			    m--;
		    	if(m)printf(" ");
			}
			if(m==0) break;
		}
		printf("\n");}
	return 0;
}