#include #include #include #include #include #include #include #include #include #include #include #include #define vll vector #define vvvl vector #define vvl vector> #define VV(a, b, c, d) vector>(a, vector(b, c)) #define VVV(a, b, c, d) vector(a, vvl(b, vll (c, d))); #define re(c, b) for(ll c=0;c> n; vll a(n);get(a); set l, r; vll min_l(n, -1), max_l(n, -1); vll min_r(n, -1), max_r(n, -1); for(int i=0;i=0;i--){ auto itr = r.upper_bound(a[i]); if(itr!=r.end()) max_r[i] = (*itr); if(itr!=r.begin()) min_r[i] = (*r.begin()); r.insert(a[i]); } ll ans = 1000000000000; re(i, n){ //if(a[i]==39) std::cout << min_l[i] << " " << min_r[i] << '\n'; if(min_l[i]!=-1&&min_r[i]!=-1) ans = min(ans, min_l[i]+min_r[i]+a[i]); if(max_l[i]!=-1&&max_r[i]!=-1) ans = min(ans, max_l[i]+max_r[i]+a[i]); } std::cout << (ans==1000000000000?-1:ans) << '\n'; }