首页 > 其他 > 详细

HDU 1280 前m大的数

时间:2016-04-30 23:37:35      阅读:174      评论:0      收藏:0      [点我收藏+]

  挺水的是吧?

  是啊,挺水的.

  挺水的比赛怎么没过?

  宝宝心里苦啊,当时光顾着看n的范围了,没看清数的范围也不过5000,T T,好崩溃啊T T

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int res[100010],a[3010],End[1010];
int main()
{
    int n,m;
    while(~scanf("%d%d",&n,&m))
    {
        for(int i = 0;i < n;i++)
        scanf("%d",&a[i]);
        sort(a,a + n);
        memset(res,0,sizeof(res));
        int max = 0,all = m;
        for(int j = n-1;j > 0;j--)
        {
            for(int i = j-1;i >= 0;i--)
            {
                int num = a[i] + a[j];
                res[num]++;
                if(num > max)
                max = num;
            }
        }
        int tot = 0;
        for(int i = max;i >= 0;i--)
        {
            if(res[i] != 0 && res[i] <= all)
            {
                while(res[i])
                {
                     End[tot++] = i;
                     res[i]--;
                }
                all -= res[i];
            }
            else if(res[i] != 0 && res[i] > all)
            {
                while(res[i])
                {
                    End[tot++] = i;
                    res[i]--;
                }
                break;
            }
        }
        for(int i = 0;i < m;i++)
        {
            if(i == 0)printf("%d",End[i]);
            else printf(" %d",End[i]);
        }
        printf("\n");
    }
    return 0;
}

 

HDU 1280 前m大的数

原文:http://www.cnblogs.com/jifahu/p/5449567.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!