4 4 1 2 3 4 4 5 5 3 6 4
7 6 5 5 11 10 9 9 8
也许是我没抓到关键的知识点吧,反正就是都列举出来,排序一下,然后输出就完了,感觉很水就过了。
代码如下:
#include <cstdio> #include <cstring> #include <algorithm> using namespace std; int a[3000*1500+50]; bool cmp(int a,int b) { return a>b; } int main() { int num[3111]; int n,m; while (~scanf ("%d %d",&n,&m)) { for (int i=0;i<n;i++) scanf ("%d",&num[i]); int t = 0; for (int i=0;i<n-1;i++) { for (int j=i+1;j<n;j++) { a[t++] = num[i]+num[j]; } } sort (a,a+t,cmp); for (int i=0;i<m-1;i++) printf ("%d ",a[i]); printf ("%d\n",a[m-1]); } return 0; }