【每日练习】牛客-组队决赛

 
  

【每日练习】牛客-组队决赛_第1张图片

这题就属于那种,看着特别阴间的,实际上如果想过来的话其实还算简单。

两个值,第一个是有几组,也就是之后要用到的要加几个值。

第二个是不同的数字,让你分组。

说是让分组,其实就是让你好好想想每次应该怎么把数字加起来。

首以上面的 1 2 5 5 5 8 举例子。

我们排好序之后,从后往前加。

每次都选的是倒数第二大的。

可以看图理解:

【每日练习】牛客-组队决赛_第2张图片

 

每次我们都是将最大的两个和最小的分一组,保证中间值是最大的。

下面看代码:

#include 
#include 
#include  
​
using namespace std;
​
int main()
{
    int n;
    cin>>n;
    vector v(n*3,0);
    for(int i = 0;i>v[i];
    }
    sort(v.begin(),v.end());
    long sum = 0;
    for(int i = n;i 
 

你可能感兴趣的:(每日练习,c++)