#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define popcount __builtin_popcount using namespace std; typedef long long int ll; typedef pair P; const int INF=1e9+7; int solve1(int n, vector a){ int mnl[200020], mnr[200020]; mnl[0]=INF, mnr[n]=INF; for(int i=0; i=0; i--){ mnr[i]=min(mnr[i+1], a[i]); } int ans=INF; for(int i=0; i a){ int mnl[200020], mnr[200020]; set st; st.insert(a[0]); for(int i=1; i=1; i--){ auto itr=st.upper_bound(a[i]); if(itr==st.end()) mnr[i]=INF; else mnr[i]=(*itr); st.insert(a[i]); } int ans=INF; for(int i=1; i>n; vector a(n); for(int i=0; i>a[i]; int ans=solve1(n, a); ans=min(ans, solve2(n, a)); if(ans>=INF) cout<<-1<