您的位置:首页 > 其它

HDU1425 sort 【STL堆排序】

2014-08-17 17:39 357 查看

sort

Time Limit: 6000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 27781    Accepted Submission(s): 8404

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

 

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

 

[align=left]Output[/align]
对每组测试数据按从大到小的顺序输出前m大的数。

 

[align=left]Sample Input[/align]

5 3
3 -35 92 213 -644

 

[align=left]Sample Output[/align]

213 92 3

HintHint
请用VC/VC++提交

 

[align=left]
[/align]

#include <stdio.h>
#include <algorithm>
#define maxn 1000002
using namespace std;

int arr[maxn];

int main()
{
int n, m, i;
while(scanf("%d%d", &n, &m) == 2){
for(i = 0; i < n; ++i)
scanf("%d", &arr[i]);
make_heap(arr, arr + n);
printf("%d", arr[0]);
for(i = 0; i < m - 1; ++i){
pop_heap(arr, arr + n - i);
printf(" %d", arr[0]);
}
printf("\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  HDU1425