#include #define rep(i, n) for (int i = 0; i < n; i++) using namespace std; typedef long long ll; int main() { int N, ans = 1e9; cin >> N; vector A(N); set l, r; rep(i, N) { cin >> A[i]; } rep(i, N - 1) r.insert(A[i + 1]); rep(i, N - 2) { l.insert(A[i]); r.erase(A[i + 1]); auto a = l.begin(), b = r.begin(); if (*a < A[i + 1] && A[i + 1] > *b) { ans = min(ans, *a + A[i + 1] + *b); } a = l.upper_bound(A[i + 1]); b = r.upper_bound(A[i + 1]); if (a != l.end() && b != r.end()) { ans = min(ans, *a + A[i + 1] + *b); } } if (ans == 1e9) ans = -1; cout << ans << "\n"; }