#include<iostream>
#include<algorithm>
using namespace std;
int res[3013500];
int main()
{
int n, m, k;
int num[3005];
while (scanf("%d%d",&n,&m)!=EOF){
k = 0;
for (int i = 0; i < n; i++){
cin >> num[i];
}
for (int i = 0; i < n-1; i++){
for (int j = i+1; j < n; j++){
res[k] = num[i] + num[j];
k++;
}
}
sort(res, res + k);
for (int i = k-1; i > k - m-1; i--) {
cout << res[i] << ' ';
}cout << endl;
}
return 0;
}以上是未通过代码,time limit exceeded
#include<cstdio>
#include<algorithm>
using namespace std;
int res[5000000];
int num[3050];
int main()
{
int n,m,i,j,k;
while(scanf("%d%d",&n,&m)!=EOF)
{
for(i=0;i<n;i++)
scanf("%d",&num[i]);
k=0;
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
res[k]=num[i]+num[j];
k++;
}
}
sort(res,res+k);
for(i=k-1;i>k-m;i--)
printf("%d ",res[i]);
printf("%d\n",res[k-m]);
}
return 0;
}以上是通过代码
有些疑惑。



京公网安备 11010502036488号