题解 | #组队竞赛#

【题目解析】:

首先明确,队伍的水平就是队伍成员水平的第二高,第二高意味着要排序,最后一个必然是从后开始选,第一个必然是从开始选,那么第二高当然是从后面选。一个队伍三个成员,即从开始选一个,从后面选两个。然后继续从剩下的数里选。 要的结果是输出一个sum,则只需要推出这个公式即可。

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
		
int main()
{
    int n;cin>>n;
    vector<int> v(3*n);
    
    for(int i = 0; i< v.size();++i)
    {
        cin>>v[i];
    }
    
    sort(v.begin(),v.end());
    long sum = 0;
    for(int i = 0; i < n; ++i)
    {
        sum += v[v.size()-(2*(i+1))];  //i是从0开始的,就要+1,也可以i从1开始,就不需要了
    }
    
    cout<<sum<<endl;
    return 0;
}
全部评论

相关推荐

牛舌:如果我不想去,不管对方给了多少,我一般都会说你们给得太低了。这样他们就会给下一个offer的人更高的薪资了。
点赞 评论 收藏
分享
11-07 13:31
怀化学院 Java
勇敢牛牛不怕难:又疯一个
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务