前m大数

题目内容

题目描述

给定一个包含N(1<N<=3000)个正整数的序列,每个数不超过5000,对它们两两相加得到的N*(N-1)/2个和,求出其中前M大的数(M<=1000)并按从大到小的顺序排列。


输入描述

第一行输入两个整数,N和M。其中N<=3000,M<=1000。随后一行输入N个数,表示该序列。

输出描述

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

样例输入

4 5 5 3 6 4

样例输出

11 10 9 9 8

提示

首先将输入的数字存储到数组中。然后维护一个m大小的按照数值大小从小到大排序的优先队列。方法是:两重循环遍历数组,将两个数组的和加入队列中。如果队列的个数大于m,则每次加入队列前,判断这个数值和队首元素的大小,如果比队首元素大,则将其加入到队列中。最后,倒过来输出队列元素就可以了。


提交评测
请登录后再操作

题目描述

前m大数
1447
0
08Level6
50
23
46%
证书查询 x
请输入证书编号:

请输入正确的证书编号

学员姓名:孙兴民

课程:Scratch Level 1

发证日期:2019.08.15

证书查询

该证书不存在