#include using namespace std; int main() { int N; cin >> N; vectorA(N); setl,r; for(int i = 0; i < N; i++) { cin >> A[i]; r.insert(A[i]); } int ans = 1e9; for(int i = 0; i < N; i++) { r.erase(A[i]); if(l.size() && r.size()) { if(*l.begin() < A[i] && *r.begin() < A[i]) { ans = min(ans,A[i]+*l.begin()+*r.begin()); } auto it1 = l.lower_bound(A[i]); auto it2 = r.lower_bound(A[i]); if(it1 != l.end() && it2 != r.end()) { ans = min(ans,A[i]+*it1+*it2); } } l.insert(A[i]); } if(ans == 1e9) { cout << -1 << endl; return 0; } cout << ans << endl; }