sort
Time Limit: 6000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 12363 Accepted Submission(s): 3366
Problem Description
给你n个整数,请按从大到小的顺序输出其中前m大的数。
Input
每组测试数据有两行,第一行有两个数n,m(0<n,m<1000000),第二行包含n个各不相同,且都处于区间[-500000,500000]的整数。
Output
对每组测试数据按从大到小的顺序输出前m大的数。
Sample Input
Sample Output
我第一次用hash的题,最简单的哈希,空间换时间!!! 156MS
代码:
#include <iostream>
#include <stdio.h>
#include <memory.h>
using namespace std;
#define N 1000001
bool hash[N];
inline bool scan_d(int &num) //加速输入外挂!!!
{
char in;
bool IsN = false;
in = getchar();
if(in == EOF) return false;
while(in!='-' && (in<'0'||in>'9')) in = getchar();
if(in == '-') {IsN = true; num = 0;}
else num = in-'0';
while(in = getchar(), in>='0'&&in<='9')
{
num *= 10, num += in-'0';
}
if(IsN) num = -num;
return true;
}
int main()
{
int n, m, i, x, k;
while(scanf("%d %d", &n, &m) != EOF)
{
memset(hash, false, sizeof(hash));
for(i = 0; i < n; i++)
{
scan_d(x);
hash[x+500000] = true;
}
k = 0;
for(i = N-1; k != m; i--)
{
if(hash[i])
{
if(k++) printf(" ");
printf("%d", i-500000);
}
}
printf("\n");
}
return 0;
}
分享到:
相关推荐
HDU最全ac代码
HDUACM2010版_14)Hash及应用HDUACM2010版_14)Hash及应用HDUACM2010版_14)Hash及应用HDUACM2010版_14)Hash及应用
hdu ACM 各种排序
hdu 1005.比较简单的一道题,有兴趣的可以看看。
杭电ACMhdu1163
HDU的1250,主要是利用高精度加法,但是代码有点繁琐,效率不是很高
hdu1001解题报告
HDU1059的代码
hdu 1574 passed sorce
HDU的一题........HDU DP动态规
hdu2101AC代码
hdu acm 教案 搜索入门 hdu acm 教案 搜索入门
搜索 dfs 解题代码 hdu1241
hdu 一些简单题目 ac代码 大概100道
hdu 5007 Post Robot 字符串枚举。 暴力一下就可以了。
HDU 的ACM 题目,只做了一些简单的,都是用JAVA语言写的
hdu acm 教案 动态规划(1) hdu acm 教案 动态规划(1)
自己做的HDU ACM已经AC的题目
hdu 1166线段树代码