#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define llint long long #define inf 1e18 #define rep(x, s, t) for(llint (x) = (s); (x) < (t); (x)++) #define Rep(x, s, t) for(llint (x) = (s); (x) <= (t); (x)++) #define chmin(x, y) (x) = min((x), (y)) #define chmax(x, y) (x) = max((x), (y)) using namespace std; typedef pair P; llint n; llint a[200005]; set S; llint l[200005], l2[200005]; llint r[200005], r2[200005]; int main(void) { ios::sync_with_stdio(0); cin.tie(0); cin >> n; for(int i = 1; i <= n; i++){ cin >> a[i]; l[i] = l2[i] = r[i] = r2[i] = inf; } for(int i = 1; i <= n; i++){ if(S.size()) l[i] = *S.begin(); auto it = S.upper_bound(a[i]); if(it != S.end()) l2[i] = *it; S.insert(a[i]); } S.clear(); for(int i = n; i >= 1; i--){ if(S.size()) r[i] = *S.begin(); auto it = S.upper_bound(a[i]); if(it != S.end()) r2[i] = *it; S.insert(a[i]); } llint ans = inf; for(int i = 1; i <= n; i++){ if(l[i] < a[i] && r[i] < a[i]) ans = min(ans, l[i]+a[i]+r[i]); ans = min(ans, l2[i]+a[i]+r2[i]); } if(ans > inf/2) ans = -1; cout << ans << endl; return 0; }