题解 | #组队竞赛#

【题目解析】:

首先明确,队伍的水平就是队伍成员水平的第二高,第二高意味着要排序,最后一个必然是从后开始选,第一个必然是从开始选,那么第二高当然是从后面选。一个队伍三个成员,即从开始选一个,从后面选两个。然后继续从剩下的数里选。 要的结果是输出一个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;
}
全部评论

相关推荐

喜欢吃蛋糕仰泳鲈鱼是我的神:字节可以找个hr 给你挂了,再放池子捞
点赞 评论 收藏
分享
头像
11-18 16:08
福州大学 Java
影流之主:干10年不被裁,我就能拿别人一年的钱了,日子有盼头了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务