关闭

题目1431:Sort

84人阅读 评论(0) 收藏 举报
题目1431:Sort

时间限制:1 秒

内存限制:128 兆

特殊判题:

题目描述:

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

输入:

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

输出:

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

样例输入:
5 3
3 -35 92 213 -644
样例输出:
213 92 3
#include <iostream>
#include <iostream>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<algorithm>
#define OFFSET 500000
using namespace std;
int Hash[1000001];

int main()
{
    int n,m;
    while(scanf("%d%d",&n,&m)!=EOF)
    {
        for(int i=-500000; i<=500000; i++)
        {
            Hash[i+500000]=0;
        }
        for(int i=1; i<=n; i++)
        {
            int x;
            scanf("%d",&x);
            Hash[OFFSET+x]=1;
        }
        for(int i=500000; i>=-500000; i--)
        {
            if(Hash[OFFSET+i]==1)
            {
                printf("%d",i);
                m--;
                if(m!=0)
                {
                    printf(" ");
                }
                else
                {
                    printf("\n");
                    break;
                }
            }
        }
    }
    return 0;
}

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:51912次
    • 积分:1147
    • 等级:
    • 排名:千里之外
    • 原创:146篇
    • 转载:7篇
    • 译文:0篇
    • 评论:4条
    最新评论