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;
}