• 【水题】HDU--1280 前m大的数


    还记得Gardon给小希布置的那个作业么?(上次比赛的1005)其实小希已经找回了原来的那张数表,现在她想确认一下她的答案是否正确,但是整个的答案是很庞大的表,小希只想让你把答案中最大的M个数告诉她就可以了。 
    给定一个包含N(N<=3000)个正整数的序列,每个数不超过5000,对它们两两相加得到的N*(N-1)/2个和,求出其中前M大的数(M<=1000)并按从大到小的顺序排列。

    Input

     输入可能包含多组数据,其中每组数据包括两行: 
    第一行两个数N和M, 
    第二行N个数,表示该序列。 

    Output

    对于输入的每组数据,输出M个数,表示结果。输出应当按照从大到小的顺序排列。

    Sample Input

    4 4
    1 2 3 4
    4 5
    5 3 6 4

    Sample Output
    7 6 5 5
    11 10 9 9 8
    题解:
    sort的简单应用。
    AC代码:
     1 #include<stdio.h>
     2 #include<algorithm>
     3 using namespace std;
     4 bool cmp(int x,int y)
     5 {
     6     return x>y;
     7 }
     8 int b[10000000];
     9 int main()
    10 {
    11     int n,m,a[3000],i,j,k;
    12     while(scanf("%d %d",&n,&m)!=EOF)
    13       {k=0;
    14        for(i=0;i<n;i++)
    15          scanf("%d",&a[i]);
    16        for(i=0;i<n-1;i++)
    17          for(j=i+1;j<n;j++)
    18            b[k++]=a[i]+a[j];
    19        sort(b,b+k,cmp);
    20        for(i=0;i<m;i++)
    21          printf("%d%c",b[i],i<m-1?' ':'
    ');         
    22           
    23       }
    24     
    25     return 0;
    26 }
     


  • 相关阅读:
    洛谷P1501 动态树(LCT)
    Beijing Institute of Technology 2019.6 Monthly Contest (For grade 2018)
    [BJOI2018]求和
    [JSOI2015]最小表示
    简单题
    [Ynoi2016]掉进兔子洞
    乘积
    飞扬的小鸟
    [CTSC2008]网络管理
    Sequence
  • 原文地址:https://www.cnblogs.com/hss-521/p/7227934.html
Copyright © 2020-2023  润新知