輸出乙個整數表示所有隊伍的水平值總和最大值

2021-09-29 18:09:34 字數 937 閱讀 3869

牛牛舉辦了一次程式設計比賽,參加比賽的有3*n個選手,每個選手都有乙個水平值a_i.現在要將這些選手進行組隊,一共組成n個隊伍,即每個隊伍3人.牛牛發現隊伍的水平值等於該隊伍隊員中第二高水平值。

例如:乙個隊伍三個隊員的水平值分別是3,3,3.那麼隊伍的水平值是3

乙個隊伍三個隊員的水平值分別是3,2,3.那麼隊伍的水平值是3

乙個隊伍三個隊員的水平值分別是1,5,2.那麼隊伍的水平值是2

為了讓比賽更有看點,牛牛想安排隊伍使所有隊伍的水平值總和最大。

如樣例所示:

如果牛牛把6個隊員劃分到兩個隊伍

如果方案為:

team1:, team2:, 這時候水平值總和為7.

而如果方案為:

team1:, team2:, 這時候水平值總和為10.

沒有比總和為10更大的方案,所以輸出10.

輸入描述:

輸入的第一行為乙個正整數n(1 ≤ n ≤ 10^5)

第二行包括3*n個整數a_i(1 ≤ a_i ≤ 10^9),表示每個參賽選手的水平值.

輸出描述:

輸出乙個整數表示所有隊伍的水平值總和最大值.

示例1輸入

25 2 8 5 1 5

輸出10

#include

using

namespace std;

#include

#include

long

long

func

(vector<

int>

& v ,

int n)

return sum;

}int

main()

}

cout <<

func

(a,n)

<< endl;

}

乙個正整數表示為n個連續正整數之和(第1屆第2題)

問題描述 乙個正整數有可能可以被表示為 n n 2 個連續正整數之和,如 15 1 2 3 4 5 15 4 5 6 15 7 8 編寫程式,根據輸入的任何乙個正整數,找出符合這種要求的所有連續正整數序列。樣例輸入 15樣例輸出 1 2 3 4 5 4 5 6 7 8 題意很好懂,這個題第一直覺想到...

輸出乙個集合的所有子集

輸出字串的所有子集 如 對 abc 輸出 c b bc a ac ab abc 第一種做法 2 n 遍歷每個字元,每個字元只能取或者不取。取就把該字元加入結果中,遍歷完畢後,輸出結果字串。如下 main.cpp 輸出乙個集合的所有子集 created by zjl on 16 8 10.includ...

輸出乙個集合的所有子集(演算法)

輸出乙個集合的所有子集 演算法 時間複雜度很顯然,最少也是2 n,空間複雜度,是n,比較簡單 每個元素要麼在子集中,要麼不在,用 j 的二進位制形式的每一位代表陣列a中對應的位置的元素是否在子集中,例如,當i 5時,j i 5,那麼j 0101 我們對應的輸出 a 0 a 2 這個過程在while迴...