#pragma GCC optimize ("Ofast")
#include<bits/stdc++.h>
using namespace std;
void * wmem;
char memarr[ 96000000 ] ;
template < class T> inline void walloc1d( T ** arr, int x, void ** mem = & wmem) {
static int skip[ 16 ] = { 0 , 15 , 14 , 13 , 12 , 11 , 10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 } ;
( * mem) = ( void * ) ( ( ( char * ) ( * mem) ) + skip[ ( ( unsigned long long ) ( * mem) ) & 15 ] ) ;
( * arr) = ( T* ) ( * mem) ;
( * mem) = ( ( * arr) + x) ;
}
template < class T> inline void walloc1d( T ** arr, int x1, int x2, void ** mem = & wmem) {
walloc1d( arr, x2- x1, mem) ;
( * arr) - = x1;
}
template < class T, class S> int LIS_ends( int n, T a[ ] , S res[ ] , void * mem = wmem) {
int i;
int k;
int sz;
T* arr;
if ( n== 0 ) {
return 0 ;
}
walloc1d( & arr, n, & mem) ;
arr[ 0 ] = a[ 0 ] ;
res[ 0 ] = 1 ;
sz = 1 ;
int cTE1_r3A = n;
for ( i= ( 1 ) ; i< ( cTE1_r3A) ; i++ ) {
k = lower_bound( arr, arr+ sz, a[ i] ) - arr;
arr[ k] = a[ i] ;
res[ i] = k + 1 ;
if ( sz== k) {
sz++ ;
}
}
return sz;
}
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( ) {
wmem = memarr;
return 0 ;
}
#undef main
int A[ 1000 ] ;
int rg[ 1000 ] ;
int lf[ 1000 ] ;
class Solution{
public :
int minimumMountainRemovals( vector< int > & nums) {
int i, k;
dummy_main( ) ;
int N = nums.size ( ) ;
int res = 1073709056 ;
for ( i= ( 0 ) ; i< ( N) ; i++ ) {
A[ i] = nums[ i] ;
}
LIS_ends( N, A, lf) ;
reverse( A, A+ N) ;
LIS_ends( N, A, rg) ;
reverse( rg, rg+ N) ;
for ( k= ( 0 ) ; k< ( N) ; k++ ) {
if ( lf[ k] > 1 && rg[ k] > 1 ) {
chmin( res, N + 1 - lf[ k] - rg[ k] ) ;
}
}
return res;
}
}
;
// cLay version 20201206-1
// --- original code ---
// #define main dummy_main
// {}
// #undef main
//
// int A[1000];
// int rg[1000], lf[1000];
//
// class Solution {
// public:
// int minimumMountainRemovals(vector<int>& nums) {
// dummy_main();
// int N = nums.size(), res = int_inf;
// rep(i,N) A[i] = nums[i];
// LIS_ends(N, A, lf);
// reverse(A, A+N);
// LIS_ends(N, A, rg);
// reverse(rg, rg+N);
// rep(k,N) if(lf[k] > 1 && rg[k] > 1) res <?= N + 1 - lf[k] - rg[k];
// return res;
// }
// };
I3ByYWdtYSBHQ0Mgb3B0aW1pemUgKCJPZmFzdCIpCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnZvaWQqd21lbTsKY2hhciBtZW1hcnJbOTYwMDAwMDBdOwp0ZW1wbGF0ZTxjbGFzcyBUPiBpbmxpbmUgdm9pZCB3YWxsb2MxZChUICoqYXJyLCBpbnQgeCwgdm9pZCAqKm1lbSA9ICZ3bWVtKXsKICBzdGF0aWMgaW50IHNraXBbMTZdID0gezAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDF9OwogICgqbWVtKSA9ICh2b2lkKikoICgoY2hhciopKCptZW0pKSArIHNraXBbKCh1bnNpZ25lZCBsb25nIGxvbmcpKCptZW0pKSAmIDE1XSApOwogICgqYXJyKT0oVCopKCptZW0pOwogICgqbWVtKT0oKCphcnIpK3gpOwp9CnRlbXBsYXRlPGNsYXNzIFQ+IGlubGluZSB2b2lkIHdhbGxvYzFkKFQgKiphcnIsIGludCB4MSwgaW50IHgyLCB2b2lkICoqbWVtID0gJndtZW0pewogIHdhbGxvYzFkKGFyciwgeDIteDEsIG1lbSk7CiAgKCphcnIpIC09IHgxOwp9CnRlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIFM+IGludCBMSVNfZW5kcyhpbnQgbiwgVCBhW10sIFMgcmVzW10sIHZvaWQgKm1lbSA9IHdtZW0pewogIGludCBpOwogIGludCBrOwogIGludCBzejsKICBUKmFycjsKICBpZihuPT0wKXsKICAgIHJldHVybiAwOwogIH0KICB3YWxsb2MxZCgmYXJyLCBuLCAmbWVtKTsKICBhcnJbMF0gPSBhWzBdOwogIHJlc1swXSA9IDE7CiAgc3ogPSAxOwogIGludCBjVEUxX3IzQSA9IG47CiAgZm9yKGk9KDEpO2k8KGNURTFfcjNBKTtpKyspewogICAgayA9IGxvd2VyX2JvdW5kKGFyciwgYXJyK3N6LCBhW2ldKSAtIGFycjsKICAgIGFycltrXSA9IGFbaV07CiAgICByZXNbaV0gPSBrICsgMTsKICAgIGlmKHN6PT1rKXsKICAgICAgc3orKzsKICAgIH0KICB9CiAgcmV0dXJuIHN6Owp9CnRlbXBsYXRlPGNsYXNzIFMsIGNsYXNzIFQ+IGlubGluZSBTIGNobWluKFMgJmEsIFQgYil7CiAgaWYoYT5iKXsKICAgIGE9YjsKICB9CiAgcmV0dXJuIGE7Cn0KI2RlZmluZSBtYWluIGR1bW15X21haW4KaW50IG1haW4oKXsKICB3bWVtID0gbWVtYXJyOwogIHJldHVybiAwOwp9CiN1bmRlZiBtYWluCmludCBBWzEwMDBdOwppbnQgcmdbMTAwMF07CmludCBsZlsxMDAwXTsKY2xhc3MgU29sdXRpb257CiAgcHVibGljOgogIGludCBtaW5pbXVtTW91bnRhaW5SZW1vdmFscyh2ZWN0b3I8aW50PiYgbnVtcyl7CiAgICBpbnQgaSwgazsKICAgIGR1bW15X21haW4oKTsKICAgIGludCBOID0gbnVtcy5zaXplKCk7CiAgICBpbnQgcmVzID0gMTA3MzcwOTA1NjsKICAgIGZvcihpPSgwKTtpPChOKTtpKyspewogICAgICBBW2ldID0gbnVtc1tpXTsKICAgIH0KICAgIExJU19lbmRzKE4sIEEsIGxmKTsKICAgIHJldmVyc2UoQSwgQStOKTsKICAgIExJU19lbmRzKE4sIEEsIHJnKTsKICAgIHJldmVyc2UocmcsIHJnK04pOwogICAgZm9yKGs9KDApO2s8KE4pO2srKyl7CiAgICAgIGlmKGxmW2tdID4gMSAmJiByZ1trXSA+IDEpewogICAgICAgIGNobWluKHJlcywgTiArIDEgLSBsZltrXSAtIHJnW2tdKTsKICAgICAgfQogICAgfQogICAgcmV0dXJuIHJlczsKICB9Cn0KOwovLyBjTGF5IHZlcnNpb24gMjAyMDEyMDYtMQoKLy8gLS0tIG9yaWdpbmFsIGNvZGUgLS0tCi8vICNkZWZpbmUgbWFpbiBkdW1teV9tYWluCi8vIHt9Ci8vICN1bmRlZiBtYWluCi8vIAovLyBpbnQgQVsxMDAwXTsKLy8gaW50IHJnWzEwMDBdLCBsZlsxMDAwXTsKLy8gCi8vIGNsYXNzIFNvbHV0aW9uIHsKLy8gcHVibGljOgovLyAgIGludCBtaW5pbXVtTW91bnRhaW5SZW1vdmFscyh2ZWN0b3I8aW50PiYgbnVtcykgewovLyAgICAgZHVtbXlfbWFpbigpOwovLyAgICAgaW50IE4gPSBudW1zLnNpemUoKSwgcmVzID0gaW50X2luZjsKLy8gICAgIHJlcChpLE4pIEFbaV0gPSBudW1zW2ldOwovLyAgICAgTElTX2VuZHMoTiwgQSwgbGYpOwovLyAgICAgcmV2ZXJzZShBLCBBK04pOwovLyAgICAgTElTX2VuZHMoTiwgQSwgcmcpOwovLyAgICAgcmV2ZXJzZShyZywgcmcrTik7Ci8vICAgICByZXAoayxOKSBpZihsZltrXSA+IDEgJiYgcmdba10gPiAxKSByZXMgPD89IE4gKyAxIC0gbGZba10gLSByZ1trXTsKLy8gICAgIHJldHVybiByZXM7Ci8vICAgfQovLyB9Owo=