program mountain;
Uses Math;
const
MAXN = 100005;
var
ANS, N, i, j, maxMountainLength, count : LongInt;
P, leftLIS, rightLIS, valli, scartato : Array[0..MAXN-1] of LongInt;
begin
(*assign(input, 'input.txt'); reset(input);
assign(output, 'output.txt'); rewrite(output);*)
ReadLn(N);
for i:=0 to N-1 do
Read(P[i]);
ReadLn();
valli[0]:=0; valli[N-1]:=0;
for i:=1 to N-1 do
if (P[i]<P[i-1]) and (P[i]<P[i+1]) then valli[i]:=1;
ANS := 0;
(*leftLIS[i] stores the length of longest increasing subsequence ending at index i*)
(*rightLIS[i] stores the length of longest decreasing subsequence starting at index i*)
for i:=0 to N-1 do begin leftLIS[i]:=1; rightLIS[i]:=1; scartato[i]:=0; end;
(*Calculate LIS from left to right for each position*)
for i := 1 to N-1 do
for j:= 0 to i-1 do
begin
if (P[i] > P[j]) then leftLIS[i] := max(leftLIS[i], leftLIS[j] + 1);
if (i>0) and (i<N-1) and (P[i]<P[i-1]) then scartato[i]:=1;
end;
(* Calculate LIS from right to left (decreasing subsequence) for each position*)
for i := N - 2 downto 0 do
for j := i + 1 to N-1 do
if (P[i] > P[j]) then rightLIS[i] := max(rightLIS[i], rightLIS[j] + 1);
if (i<N-1) and (i>0) and (P[i]<P[i+1]) then scartato[i]:=1;
(* Find the maximum length of mountain subsequence*)
count:=0;
for i:=0 to N-1 do if ((scartato[i]=1) and (valli[i]=1)) then count:=count+1;
maxMountainLength := 0;
for i := 0 to N-1 do
(*A valid mountain peak must have at least one element on both sides*)
(*leftLIS[i] > 1 ensures there's at least one element before peak*)
(*rightLIS[i] > 1 ensures there's at least one element after peak*)
if (leftLIS[i] >= 1) and (rightLIS[i] >= 1) then
(*Total mountain length with peak at i Subtract 1 because peak is counted in both leftLIS and rightLIS*)
maxMountainLength := max(maxMountainLength, leftLIS[i] + rightLIS[i] - 1);
(* Minimum removals = total elements - maximum mountain length*)
ANS:=max (N - maxMountainLength,N - maxMountainLength - count) ;
WriteLn(ANS);
end.
cHJvZ3JhbSBtb3VudGFpbjsKVXNlcyBNYXRoOwpjb25zdAogICAgTUFYTiA9IDEwMDAwNTsKCnZhcgogICAgQU5TLCBOLCBpLCBqLCBtYXhNb3VudGFpbkxlbmd0aCwgY291bnQgOiBMb25nSW50OwogICAgUCwgbGVmdExJUywgcmlnaHRMSVMsIHZhbGxpLCBzY2FydGF0byAgOiBBcnJheVswLi5NQVhOLTFdIG9mIExvbmdJbnQ7CiAgICAKYmVnaW4KCiAgICAoKmFzc2lnbihpbnB1dCwgICdpbnB1dC50eHQnKTsgIHJlc2V0KGlucHV0KTsKICAgIGFzc2lnbihvdXRwdXQsICdvdXRwdXQudHh0Jyk7IHJld3JpdGUob3V0cHV0KTsqKQoKICAgIFJlYWRMbihOKTsKCiAgICBmb3IgaTo9MCB0byBOLTEgZG8KICAgICAgICBSZWFkKFBbaV0pOwogICAgUmVhZExuKCk7CiAgICAKICAgICB2YWxsaVswXTo9MDsgdmFsbGlbTi0xXTo9MDsKICAgICBmb3IgaTo9MSB0byBOLTEgZG8gCiAgICAgICAgICAgICAgICAgICAgICBpZiAoUFtpXTxQW2ktMV0pIGFuZCAoUFtpXTxQW2krMV0pIHRoZW4gdmFsbGlbaV06PTE7CiAgICAgICAgICAgICAgICAgCiAgICBBTlMgOj0gMDsKCgkoKmxlZnRMSVNbaV0gc3RvcmVzIHRoZSBsZW5ndGggb2YgbG9uZ2VzdCBpbmNyZWFzaW5nIHN1YnNlcXVlbmNlIGVuZGluZyBhdCBpbmRleCBpKikKCSgqcmlnaHRMSVNbaV0gc3RvcmVzIHRoZSBsZW5ndGggb2YgbG9uZ2VzdCBkZWNyZWFzaW5nIHN1YnNlcXVlbmNlIHN0YXJ0aW5nIGF0IGluZGV4IGkqKQoKICAgZm9yIGk6PTAgdG8gIE4tMSBkbyBiZWdpbiBsZWZ0TElTW2ldOj0xOyByaWdodExJU1tpXTo9MTsgc2NhcnRhdG9baV06PTA7IGVuZDsKCgkoKkNhbGN1bGF0ZSBMSVMgZnJvbSBsZWZ0IHRvIHJpZ2h0IGZvciBlYWNoIHBvc2l0aW9uKikKCiAgIGZvciBpIDo9IDEgdG8gTi0xIGRvCiAgICAgICAgICAgIGZvciBqOj0gMCB0byBpLTEgZG8KICAgICAgICAgICAgICAgIGJlZ2luCiAgICAgICAgICAgICAgICAgIGlmIChQW2ldID4gUFtqXSkgdGhlbiBsZWZ0TElTW2ldIDo9IG1heChsZWZ0TElTW2ldLCBsZWZ0TElTW2pdICsgMSk7CiAgICAgICAgICAgICAgICAgIGlmIChpPjApIGFuZCAoaTxOLTEpIGFuZCAoUFtpXTxQW2ktMV0pIHRoZW4gc2NhcnRhdG9baV06PTE7ICAgICAgICAgIAogICAgICAgICAgICAgICAgZW5kOyAgCiAgCgkoKiBDYWxjdWxhdGUgTElTIGZyb20gcmlnaHQgdG8gbGVmdCAoZGVjcmVhc2luZyBzdWJzZXF1ZW5jZSkgZm9yIGVhY2ggcG9zaXRpb24qKQoKICAgZm9yIGkgOj0gTiAtIDIgZG93bnRvIDAgZG8KICAgICAgICAgICAgZm9yICBqIDo9IGkgKyAxIHRvIE4tMSBkbwogICAgICAgICAgICAgICAgaWYgKFBbaV0gPiBQW2pdKSB0aGVuIHJpZ2h0TElTW2ldIDo9IG1heChyaWdodExJU1tpXSwgcmlnaHRMSVNbal0gKyAxKTsKICAgICAgICAgICAgICAgIGlmIChpPE4tMSkgYW5kIChpPjApIGFuZCAoUFtpXTxQW2krMV0pIHRoZW4gc2NhcnRhdG9baV06PTE7IAogIAoJKCogRmluZCB0aGUgbWF4aW11bSBsZW5ndGggb2YgbW91bnRhaW4gc3Vic2VxdWVuY2UqKQoJY291bnQ6PTA7CiAgICBmb3IgaTo9MCB0byBOLTEgZG8gIGlmICgoc2NhcnRhdG9baV09MSkgYW5kICh2YWxsaVtpXT0xKSkgdGhlbiBjb3VudDo9Y291bnQrMTsKICAgbWF4TW91bnRhaW5MZW5ndGggOj0gMDsKICAgZm9yIGkgOj0gMCB0byBOLTEgZG8KCSgqQSB2YWxpZCBtb3VudGFpbiBwZWFrIG11c3QgaGF2ZSBhdCBsZWFzdCBvbmUgZWxlbWVudCBvbiBib3RoIHNpZGVzKikKCSgqbGVmdExJU1tpXSA+IDEgZW5zdXJlcyB0aGVyZSdzIGF0IGxlYXN0IG9uZSBlbGVtZW50IGJlZm9yZSBwZWFrKikKCSgqcmlnaHRMSVNbaV0gPiAxIGVuc3VyZXMgdGhlcmUncyBhdCBsZWFzdCBvbmUgZWxlbWVudCBhZnRlciBwZWFrKikKICAgaWYgKGxlZnRMSVNbaV0gPj0gMSkgYW5kIChyaWdodExJU1tpXSA+PSAxKSAgdGhlbgogIAkoKlRvdGFsIG1vdW50YWluIGxlbmd0aCB3aXRoIHBlYWsgYXQgaSBTdWJ0cmFjdCAxIGJlY2F1c2UgcGVhayBpcyBjb3VudGVkIGluIGJvdGggbGVmdExJUyBhbmQgcmlnaHRMSVMqKQogICAgICAgICBtYXhNb3VudGFpbkxlbmd0aCA6PSBtYXgobWF4TW91bnRhaW5MZW5ndGgsIGxlZnRMSVNbaV0gKyByaWdodExJU1tpXSAtIDEpOwogCSgqIE1pbmltdW0gcmVtb3ZhbHMgPSB0b3RhbCBlbGVtZW50cyAtIG1heGltdW0gbW91bnRhaW4gbGVuZ3RoKikKICAgQU5TOj1tYXggKE4gLSBtYXhNb3VudGFpbkxlbmd0aCxOIC0gbWF4TW91bnRhaW5MZW5ndGggLSBjb3VudCkgOyAKICAgV3JpdGVMbihBTlMpOwplbmQu