牛客算法-选手最高平均水平
问题描述:
牛牛举办了次编程比赛, 参加比赛的有3*n个选手,每个选手 都有一个水平值a_i.现在要将这些选手进行组队,一共组成n个队伍,即每个队伍3人牛牛发现队伍的水平值等于该队伍队员中第二高水平值。
输入描述:
输入的第一行为一个正整数n(1≤n≤10^5)
第二行包括3*n个整数a_i(1≤a_i≤10^9),表示每个参赛边手的水于值
思路:既然队里排名第二的选手实力为全队的平均水平,那么通过排序后,将数组分成三份,将第二份的选手水平进行相加即可
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int number,maxAverage=0;
cout<<"请输入一个正整数:";
cin>>number;
if(number<=0){
printf("%d",0);exit(0);
}
int arr[3*number];
for(int index=0;index<3*number;index++){
cin>>arr[index];
}
sort(arr,arr+3*number);
for(int index=2*number-1;index>number-1;index--){
maxAverage+=arr[index];
}
printf("%d",maxAverage);
}