HDOJ_1425  sort 桶排序

来源:互联网 发布:淘宝上面做销售怎么做 编辑:程序博客网 时间:2024/06/06 02:58
给你n个整数,请按从大到小的顺序输出其中前m大的数。
每组测试数据有两行,第一行有两个数n,m(0<n,m<1000000),第二行包含n个各不相同,且都处于区间[-500000,500000]的整数。

5 3 

3 -35 92 213 -644 

213 92 3 

#include<stdio.h>

#include<string.h> 
#define M 1000005    
int main()
{
     long long  a[M];
     long long m,n,t,i,k;
     while(scanf("%lld%lld",&n,&m)!=EOF)
     {
          for(i=0;i<=1000004;i++)
               a[i]=0;
          while(n--)
          {
               scanf("%lld",&t);


               a[t+500000]=1;
          }
          t=1000000;
          k=0;
          while(m--)        从最大范围开始搜索
          {    for(;;)
               {if(a[t])
               {    if(k==0)
                    {printf("%lld",t-500000);
                     k=1;}
                     else printf(" %lld",t-500000);
                    a[t]=0;
                    break;
               }
               t--;
               }
          }
    printf("\n");   
     }
}


0 0
原创粉丝点击