#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("inline")
#include<bits/stdc++.h>
using namespace std;
template < class T> struct cLtraits_identity{
using type = T;
}
;
template < class T> using cLtraits_try_make_signed =
typename conditional<
is_integral< T> :: value ,
make_signed< T> ,
cLtraits_identity< T>
> :: type ;
template < class S, class T> struct cLtraits_common_type{
using tS = typename cLtraits_try_make_signed< S> :: type ;
using tT = typename cLtraits_try_make_signed< T> :: type ;
using type = typename common_type< tS,tT> :: type ;
}
;
template < class S, class T> inline auto min_L( S a, T b)
- > typename cLtraits_common_type< S,T> :: type {
return ( typename cLtraits_common_type< S,T> :: type ) a <= ( typename cLtraits_common_type< S,T> :: type ) b ? a : b;
}
template < class S, class T> inline S chmin( S & a, T b) {
if ( a> b) {
a= b;
}
return a;
}
#define main dummy_main
int main( ) {
return 0 ;
}
#undef main
class Solution{
public :
int minimumSum( vector< int > & A) {
int i;
int N = A.size ( ) ;
static long long x[ 1000000 ] ;
static long long y[ 1000000 ] ;
long long res = 4611686016279904256LL;
x[ 0 ] = A[ 0 ] ;
y[ N- 1 ] = A[ N- 1 ] ;
for ( i= ( 1 ) ; i< ( N) ; i++ ) {
x[ i] = min_L( x[ i- 1 ] , A[ i] ) ;
}
for ( i= ( N- 1 ) - 1 ; i>= ( 0 ) ; i-- ) {
y[ i] = min_L( y[ i+ 1 ] , A[ i] ) ;
}
for ( i= ( 1 ) ; i< ( N- 1 ) ; i++ ) {
if ( x[ i- 1 ] < A[ i] && A[ i] > y[ i+ 1 ] ) {
chmin( res, x[ i- 1 ] + A[ i] + y[ i+ 1 ] ) ;
}
}
if ( res== 4611686016279904256LL) {
return - 1 ;
}
else {
return res;
}
}
}
;
// cLay version 20231031-1
// --- original code ---
// #define main dummy_main
// {}
// #undef main
//
// class Solution {
// public:
// int minimumSum(VI &A) {
// int i, N = A.size();
// static ll x[1d6], y[1d6];
// ll res = ll_inf;
//
// x[0] = A[0]; y[N-1] = A[N-1];
// rep(i,1,N) x[i] = min(x[i-1], A[i]);
// rrep(i,N-1) y[i] = min(y[i+1], A[i]);
//
// rep(i,1,N-1) if(x[i-1] < A[i] && A[i] > y[i+1]) res <?= x[i-1] + A[i] + y[i+1];
// return if[res==ll_inf, -1, res];
// }
// };
I3ByYWdtYSBHQ0Mgb3B0aW1pemUoIk9mYXN0IikKI3ByYWdtYSBHQ0Mgb3B0aW1pemUoInVucm9sbC1sb29wcyIpCiNwcmFnbWEgR0NDIG9wdGltaXplKCJpbmxpbmUiKQojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp0ZW1wbGF0ZTxjbGFzcyBUPiBzdHJ1Y3QgY0x0cmFpdHNfaWRlbnRpdHl7CiAgdXNpbmcgdHlwZSA9IFQ7Cn0KOwp0ZW1wbGF0ZTxjbGFzcyBUPiB1c2luZyBjTHRyYWl0c190cnlfbWFrZV9zaWduZWQgPQogIHR5cGVuYW1lIGNvbmRpdGlvbmFsPAogICAgaXNfaW50ZWdyYWw8VD46OnZhbHVlLAogICAgbWFrZV9zaWduZWQ8VD4sCiAgICBjTHRyYWl0c19pZGVudGl0eTxUPgogICAgPjo6dHlwZTsKdGVtcGxhdGUgPGNsYXNzIFMsIGNsYXNzIFQ+IHN0cnVjdCBjTHRyYWl0c19jb21tb25fdHlwZXsKICB1c2luZyB0UyA9IHR5cGVuYW1lIGNMdHJhaXRzX3RyeV9tYWtlX3NpZ25lZDxTPjo6dHlwZTsKICB1c2luZyB0VCA9IHR5cGVuYW1lIGNMdHJhaXRzX3RyeV9tYWtlX3NpZ25lZDxUPjo6dHlwZTsKICB1c2luZyB0eXBlID0gdHlwZW5hbWUgY29tbW9uX3R5cGU8dFMsdFQ+Ojp0eXBlOwp9CjsKdGVtcGxhdGU8Y2xhc3MgUywgY2xhc3MgVD4gaW5saW5lIGF1dG8gbWluX0woUyBhLCBUIGIpCi0+IHR5cGVuYW1lIGNMdHJhaXRzX2NvbW1vbl90eXBlPFMsVD46OnR5cGV7CiAgcmV0dXJuICh0eXBlbmFtZSBjTHRyYWl0c19jb21tb25fdHlwZTxTLFQ+Ojp0eXBlKSBhIDw9ICh0eXBlbmFtZSBjTHRyYWl0c19jb21tb25fdHlwZTxTLFQ+Ojp0eXBlKSBiID8gYSA6IGI7Cn0KdGVtcGxhdGU8Y2xhc3MgUywgY2xhc3MgVD4gaW5saW5lIFMgY2htaW4oUyAmYSwgVCBiKXsKICBpZihhPmIpewogICAgYT1iOwogIH0KICByZXR1cm4gYTsKfQojZGVmaW5lIG1haW4gZHVtbXlfbWFpbgppbnQgbWFpbigpewogIHJldHVybiAwOwp9CiN1bmRlZiBtYWluCmNsYXNzIFNvbHV0aW9uewogIHB1YmxpYzoKICBpbnQgbWluaW11bVN1bSh2ZWN0b3I8aW50PiAmQSl7CiAgICBpbnQgaTsKICAgIGludCBOID0gQS5zaXplKCk7CiAgICBzdGF0aWMgbG9uZyBsb25nIHhbMTAwMDAwMF07CiAgICBzdGF0aWMgbG9uZyBsb25nIHlbMTAwMDAwMF07CiAgICBsb25nIGxvbmcgcmVzID0gNDYxMTY4NjAxNjI3OTkwNDI1NkxMOwogICAgeFswXSA9IEFbMF07CiAgICB5W04tMV0gPSBBW04tMV07CiAgICBmb3IoaT0oMSk7aTwoTik7aSsrKXsKICAgICAgeFtpXSA9bWluX0woeFtpLTFdLCBBW2ldKTsKICAgIH0KICAgIGZvcihpPShOLTEpLTE7aT49KDApO2ktLSl7CiAgICAgIHlbaV0gPW1pbl9MKHlbaSsxXSwgQVtpXSk7CiAgICB9CiAgICBmb3IoaT0oMSk7aTwoTi0xKTtpKyspewogICAgICBpZih4W2ktMV0gPCBBW2ldICYmIEFbaV0gPiB5W2krMV0pewogICAgICAgIGNobWluKHJlcywgeFtpLTFdICsgQVtpXSArIHlbaSsxXSk7CiAgICAgIH0KICAgIH0KICAgIGlmKHJlcz09NDYxMTY4NjAxNjI3OTkwNDI1NkxMKXsKICAgICAgcmV0dXJuIC0xOwogICAgfQogICAgZWxzZXsKICAgICAgcmV0dXJuIHJlczsKICAgIH0KICB9Cn0KOwovLyBjTGF5IHZlcnNpb24gMjAyMzEwMzEtMQoKLy8gLS0tIG9yaWdpbmFsIGNvZGUgLS0tCi8vICNkZWZpbmUgbWFpbiBkdW1teV9tYWluCi8vIHt9Ci8vICN1bmRlZiBtYWluCi8vIAovLyBjbGFzcyBTb2x1dGlvbiB7Ci8vIHB1YmxpYzoKLy8gICBpbnQgbWluaW11bVN1bShWSSAmQSkgewovLyAgICAgaW50IGksIE4gPSBBLnNpemUoKTsKLy8gICAgIHN0YXRpYyBsbCB4WzFkNl0sIHlbMWQ2XTsKLy8gICAgIGxsIHJlcyA9IGxsX2luZjsKLy8gCi8vICAgICB4WzBdID0gQVswXTsgeVtOLTFdID0gQVtOLTFdOwovLyAgICAgcmVwKGksMSxOKSB4W2ldID0gbWluKHhbaS0xXSwgQVtpXSk7Ci8vICAgICBycmVwKGksTi0xKSB5W2ldID0gbWluKHlbaSsxXSwgQVtpXSk7Ci8vIAovLyAgICAgcmVwKGksMSxOLTEpIGlmKHhbaS0xXSA8IEFbaV0gJiYgQVtpXSA+IHlbaSsxXSkgcmVzIDw/PSB4W2ktMV0gKyBBW2ldICsgeVtpKzFdOwovLyAgICAgcmV0dXJuIGlmW3Jlcz09bGxfaW5mLCAtMSwgcmVzXTsKLy8gICB9Ci8vIH07Cg==