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

hd acm1425

时间:2017-08-29 14:38:21      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:++   ring   间接   stdio.h   for   输出   代码   ==   排列   

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

先看代码:

#include<stdio.h>
#include<string.h>
#define MAX 1100000
int a[MAX];

int main()
{
  int n,m,i,t,k;
  while(scanf("%d%d",&n,&m)!=EOF)
  {
    while(n--)
    {
      scanf("%d",&t);
      a[t+500000]=1;  /*这个处理是边输边排,输入一个较小的数a,a便被分到了数组的较前方;输入一个较大的数b,b便被分到了数组的较后方。这样就间接实现了对输入的数据从大到小的排列,然后再按照要求输出。很6*/

    }
    t=MAX;
    for(i=0;i<m;i++)
    {
    while(1)
    {
      if(a[t]==1)
      {
        k=t-500000;
        a[t]=0;
        break;
      }
      else
        t--;
    }
   if(i==0)
     printf("%d",k);
   else
     printf(" %d",k);
     }
     printf("\n");
  }
  return 0;
}

hd acm1425

标签:++   ring   间接   stdio.h   for   输出   代码   ==   排列   

原文地址:http://www.cnblogs.com/clljs/p/7447531.html

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