Maximum Cake Tastiness-Codeforces
投稿日: 更新日:
問題
個のケーキがあり番目のケーキの重さはです。
ケーキのおいしさはは隣り合う2つのケーキの重さの最大値です。つまり、です。
以下の操作を最大で1回行うことができます。
の部分列を選び反転させる。
操作後、ケーキのおいしさは最大でいくつになるかを出力してください。
解法
2つの最大値の合計が答えです。
それぞれをとします。の時、と選ぶことによって2つの最大値が隣り合います。
実装
#include <bits/stdc++.h>
using namespace std;
void solve(){
    int n;
    cin >> n;
    vector<long long> a(n);
    for(int i = 0;i < n; ++i){
        cin >> a[i];
    }
    sort(a.rbegin(), a.rend());
    cout << (a[0] + a[1]) << endl;
}
int main(){
    int t;
    cin >> t;
    while(t--){
        solve();
    }
    return 0;
}