#include #define rep(i,n) for(int i=0;i<(int)(n);i++) using namespace std; using ll = long long ; using P = pair ; using pll = pair; constexpr int INF = 1e9; constexpr long long LINF = 1e17; constexpr int MOD = 1000000007; constexpr double PI = 3.14159265358979323846; int main(){ int n; cin >> n; vector a(n); rep(i,n) cin >> a[i]; vector minr(n),minl(n); ll mn = INF; rep(i,n){ minr[i] = mn; mn = min(mn,a[i]); } mn = INF; for(int i=n-1;i>=0;i--){ minl[i] = mn; mn = min(mn,a[i]); } ll ans = LINF; for(int i=1;i bir(n,-1),bil(n,-1); set st; rep(i,n){ auto it = upper_bound(st.begin(),st.end(),a[i]); if(it!=st.end()) bir[i] = *it; st.insert(a[i]); } set stt; for(int i=n-1;i>=0;i--){ auto it = upper_bound(st.begin(),st.end(),a[i]); if(it!=st.end()) bil[i] = *it; stt.insert(a[i]); } for(int i=1;i