题目翻译
有 $n$ 个数,可以选择一个区间 $[l,r]$ 进行一次翻转。最大的相邻两个数的和是多少。
题目思路
最大的和,肯定就是最大加次大。而次大肯定能翻转到最大旁边,所以答案就是次大加最大。
为什么次大肯定翻转到最大旁边:用样例解释一下。
6
5 2 1 4 7 3
翻转 $[1,4]$。
6
4 1 2 5 7 3
最大是 $7$,次大是 $5$。
不管怎么样,以次大为一个端点,最大旁边为一个端点,永远能保证次大换到最大旁边。
题目代码
void solve()
{
int n;
cin>>n;
int a[n+1];
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
sort(a+1,a+n+1);//sort从小到大排序。
cout<<a[n]+a[n-1]<<endl;
}