前m大的數

2021-09-25 09:31:31 字數 1034 閱讀 5671

題目:

給定乙個包含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 55 3 6 4

sample output

7 6 5 5

11 10 9 9 8

題解:

利用雙重迴圈求輸入陣列兩兩相加的結果,利用sort函式實現從大到小排序,最後利用while(scanf("%d %d", &n, &m))類似語句實現多組輸入即可。

**實現:

#include #include using namespace std;

#define n 3010 /*定義巨集定義常量的原因是它和常量乙個性質,可以在定義陣列時使用。陣列定義時只能是常量或表示式。

(可以不要巨集定義常量,把下面的n全部換成3010)*/

int beg[n],sum[n * n]; //因為main函式記憶體有限,比較大的陣列最好都開在外面(陣列可以開很大,至少3010*3010沒問題)

int main ()

//實現兩兩相加

}sort(sum, sum + n * (n - 1) / 2, greater ());

for( i = 0; i < m; i ++ )

//最後乙個數輸出後不能輸出空格,否則會發生格式錯誤

printf("\n");

}return 0;

}

前m大的數

total submission s 13762 accepted submission s 4693 problem description 還記得gardon給小希布置的那個作業麼?上次比賽的1005 其實小希已經找回了原來的那張數表,現在她想確認一下她的答案是否正確,但是整個的答案是很龐大的表...

前m大的數

a 前m大的數 sort time limit 1000msmemory limit 32768kb64bit io format i64d i64u submit status description 還記得gardon給小希布置的那個作業麼?上次比賽的1005 其實小希已經找回了原來的那張數表,...

前m大的數

hpu2017 sort 結構體練習 virtual judge 還記得gardon給小希布置的那個作業麼?上次比賽的1005 其實小希已經找回了原來的那張數表,現在她想確認一下她的答案是否正確,但是整個的答案是很龐大的表,小希只想讓你把答案中最大的m個數告訴她就可以了。給定乙個包含n n 3000...