现在的位置: 首页 > 综合 > 正文

hdu 1280

2013年08月01日 ⁄ 综合 ⁄ 共 561字 ⁄ 字号 评论关闭
/*
    hdu 1280
    0ms,很奇怪为什么加了个判断m=0的 反而会变成15ms
*/
#include <cstdio>
#include <algorithm>
#include <cstring>
#define maxn 10005
using namespace std;
int hash[maxn];
int num[maxn/3];
int n,m;
int main()
{
    while(scanf("%d%d",&n,&m)!=EOF)
    {
        memset(hash,0,sizeof(hash));
        for(int i=0; i<n; i++)
            scanf("%d",&num[i]);

         //if(m==0)   continue;         在这里
        int max=-1;
        for(int i=0; i<n; i++)
            for(int j=i+1; j<n; j++)
            {
                int s=num[i]+num[j];
                hash[s]++;
                if(s>max)   max=s;
            }

        int j=0;
        for(int i=max; i>=0 && j<m; i--)
        {
            if(hash[i]-- && j<m)
            {
                printf("%d",i);
                j++;
                max=i;
                break;
            }
        }
        for(int i=max; i>=0 && j<m; i--)
        {
            while(hash[i]-- && j<m)
            {
                printf(" %d",i);
                j++;
            }
        }
        printf("\n");

    }
}

抱歉!评论已关闭.