#include<stdio.h>
#include<map>
#include<algorithm>
using namespace std;
map<int,bool> m;
int a[200005],n;
inline int g(){
int max1=a[1],max2=a[1],max3=a[1];
for(int i=2;i<=n;i++) if(max1<a[i]) max1=a[i];
for(int i=2;i<=n;i++) if(max2<a[i]&&a[i]<max1) max2=a[i];
for(int i=2;i<=n;i++) if(max3<a[i]&&a[i]<max2) max3=a[i];
return max3;
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
int sum=0;
for(int i=1;i<=n;i++){
if(!m[a[i]]){
m[a[i]]=true;
sum++;
}
}
if(sum==1){
printf("-1");
return 0;
}
if(sum==2){
printf("0");
return 0;
}
printf("%d",g());
return 0;
}
虽然本蒟蒻觉得没什么大问题,但是 WA 了第一个点。给出有用建议的均给一个关注。