#include #include #include #include #include #include #include #include #include #include #define mkp make_pair #define mkt make_tuple #define rep(i,n) for(int i = 0; i < (n); ++i) #define all(v) v.begin(),v.end() using namespace std; typedef long long ll; const ll MOD=1e9+7; template void chmin(T &a,const T &b){if(a>b) a=b;} template void chmax(T &a,const T &b){if(a>N; vector A(N); rep(i,N) cin>>A[i]; ll ans=INF; { vector val(N,0); set se; rep(i,N){ auto itr=se.upper_bound(A[i]); if(itr==se.end()) val[i]=INF; else val[i]+=abs(*(itr)); se.insert(A[i]); } se.clear(); for(int i=N-1;i>=0;i--){ auto itr=se.upper_bound(A[i]); if(itr==se.end()) val[i]=INF; else val[i]+=abs(*(itr)); se.insert(A[i]); } for(int i=0;i=INF) continue; chmin(ans,val[i]+abs(A[i])); } } { vector val(N,0); ll mi=INF; rep(i,N){ if(mi=0;i--){ if(mi=INF) continue; chmin(ans,val[i]+A[i]); } } if(ans==INF) cout<<-1<