样例输入1
5
1 3 4 2
样例输出1
3
样例输入2
7
1 3 7 5 6 6
样例输出2
7
思想
乍一看这道题像是一道贪心题,但是我们看数据范围,n只有1E3,我们可以枚举做
枚举每个超级中转站.对于每个中转栈我们都找其左边的最小值和右边的最小值.
最后求一下所有超级中转站 中 leftmin+rightmin的最大的那个就是答案
code
#include<bits/stdc++.h>
using namespace std;
#define INF 0x3f3f3f3f
int n,ans=0;
const int N=1010;
int a[N];
int main()
{
cin>>n;
for(int i=1;i<=n-1;i++) cin>>a[i];
//枚举超级中转站
for(int i=2;i<=n-1;i++)
{
int minn1=INF;
for(int l=1;l<i;l++)
{
minn1=min(minn1,a[l]);
}
int minn2=INF;
for(int r=i;r<=n-1;r++)
{
minn2=min(minn2,a[r]);
}
ans=max(ans,minn1+minn2);
}
cout<<ans<<endl;
return 0;
}