码迷,mamicode.com
首页 > 其他好文 > 详细

一些项目——sort

时间:2015-05-28 09:39:58      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:c++   编程   数据   基类   cpp   



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

代码

#include <iostream>
#include <cstring>
#include <stdio.h>
using namespace std;
const int N=1000005;
int a[N];
int main()
{
    int n,m,j,i;
    while(~scanf("%d%d",&n,&m))
    {
        memset(a,0,sizeof(a));
        for(i=0; i<n; ++i)
        {
            scanf("%d",&j);
            a[j+500000]=1;
        }
        for(i=1000000; m>=1; --i)
        {
            if(a[i])
            {
                printf("%d",i-500000);
                if(m>1) printf(" ");
                else    puts("");
                m--;
            }
        }
    }
    return 0;
}

为什么要按位取反才不会超限,真是醉了。

一些项目——sort

标签:c++   编程   数据   基类   cpp   

原文地址:http://blog.csdn.net/blue_skyrim/article/details/46055133

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!