program mountain;
Uses sysutils, Math;
const
MAXN = 100005;
var
ANS, N, i, j,h, maxMountainLength, lung : LongInt;
P, leftLIS, rightLIS : Array[0..MAXN-1] of LongInt;
rimossi : string;
rimosso: boolean;
begin
ReadLn(N);
rimossi:=''; lung:=N;
for i:=0 to N-1 do begin
Read(P[i]);
rimossi:=rimossi+IntTostr(P[i]);
end;
ReadLn();
for i:=1 to lung do write(rimossi[i],' '); writeln;
rimosso:=false; i:=2; h:=1;
while h<5 do
begin
i:=2; rimosso:=false;
while i<lung do
begin
if (rimossi[i]<rimossi[i-1]) and (rimossi[i]<rimossi[i+1]) then
begin
delete(rimossi,i,1);
lung:=lung-1;
rimosso:=true;
end;
i:=i+1;
end;
h:=h+1;
end;
for i:=1 to lung do begin P[i-1]:=StrToInt(rimossi[i]); write(P[i-1],' ');end;
end.
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; rimosso[i]:=0; end;
(*Calculate LIS from left to right for each position*)
for i:=1 to N-2 do if (P[i]<P[i-1]) and (P[i]<P[i+1]) then rimosso[i]:=1;
for i := 1 to N-1 do
if (rimosso[i]=0) then
for j:= 0 to i-1 do
begin
if (rimosso[j]=0) and (P[i] > P[j]) then leftLIS[i] := max(leftLIS[i], leftLIS[j] + 1);
end;
(* Calculate LIS from right to left (decreasing subsequence) for each position*)
for i := N - 2 downto 0 do
if (rimosso[i]=0) then
for j := i + 1 to N-1 do
begin
if (rimosso[j]=0) and (P[i] > P[j]) then rightLIS[i] := max(rightLIS[i], rightLIS[j] + 1);
end;
(* Find the maximum length of mountain subsequence*)
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:= N - maxMountainLength;
WriteLn(ANS);
end.
cHJvZ3JhbSBtb3VudGFpbjsKVXNlcyBzeXN1dGlscywgTWF0aDsKCmNvbnN0CiAgICBNQVhOID0gMTAwMDA1OwoKdmFyCiAgICBBTlMsIE4sIGksIGosaCwgbWF4TW91bnRhaW5MZW5ndGgsIGx1bmcgOiBMb25nSW50OwogICAgUCwgbGVmdExJUywgcmlnaHRMSVMgIDogQXJyYXlbMC4uTUFYTi0xXSBvZiBMb25nSW50OwogICAgcmltb3NzaSA6IHN0cmluZzsKICAgIHJpbW9zc286IGJvb2xlYW47CmJlZ2luCgogIAoKICAgIFJlYWRMbihOKTsKICAgIHJpbW9zc2k6PScnOyBsdW5nOj1OOwogICAgZm9yIGk6PTAgdG8gTi0xIGRvIGJlZ2luCiAgICAgICAgICAgICAgICAgICAgICAgIFJlYWQoUFtpXSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJpbW9zc2k6PXJpbW9zc2krSW50VG9zdHIoUFtpXSk7CiAgICAgICAgICAgICAgICAgICAgICAgZW5kOyAgCiAgICBSZWFkTG4oKTsKICAgIGZvciBpOj0xIHRvIGx1bmcgZG8gIHdyaXRlKHJpbW9zc2lbaV0sJyAgJyk7IHdyaXRlbG47CiAgICByaW1vc3NvOj1mYWxzZTsgaTo9MjsgaDo9MTsKICAgIHdoaWxlIGg8NSBkbyAKICAgICAgIGJlZ2luCiAgICAgICAgaTo9Mjsgcmltb3Nzbzo9ZmFsc2U7CiAgICAgICAgd2hpbGUgaTxsdW5nIGRvCiAgICAgICAgICAgICAgYmVnaW4KICAgICAgICAgICAgICAgIGlmICAocmltb3NzaVtpXTxyaW1vc3NpW2ktMV0pIGFuZCAocmltb3NzaVtpXTxyaW1vc3NpW2krMV0pIHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUocmltb3NzaSxpLDEpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGx1bmc6PWx1bmctMTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByaW1vc3NvOj10cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQ7CiAgICAgICAgICAgICAgaTo9aSsxOwogICAgICAgICAgICAgIGVuZDsKICAgICAgICAgICBoOj1oKzE7ICAgCiAgICAgICAgIGVuZDsgICAgIAogICAgZm9yIGk6PTEgdG8gbHVuZyAgZG8gYmVnaW4gIFBbaS0xXTo9U3RyVG9JbnQocmltb3NzaVtpXSk7IHdyaXRlKFBbaS0xXSwnICcpO2VuZDsKICAgICBlbmQuIAogICAgQU5TIDo9IDA7IAoJKCpsZWZ0TElTW2ldIHN0b3JlcyB0aGUgbGVuZ3RoIG9mIGxvbmdlc3QgaW5jcmVhc2luZyBzdWJzZXF1ZW5jZSBlbmRpbmcgYXQgaW5kZXggaSopCgkoKnJpZ2h0TElTW2ldIHN0b3JlcyB0aGUgbGVuZ3RoIG9mIGxvbmdlc3QgZGVjcmVhc2luZyBzdWJzZXF1ZW5jZSBzdGFydGluZyBhdCBpbmRleCBpKikKCiAgIGZvciBpOj0wIHRvICBOLTEgZG8gYmVnaW4gbGVmdExJU1tpXTo9MTsgcmlnaHRMSVNbaV06PTE7IHJpbW9zc29baV06PTA7IGVuZDsKCgkoKkNhbGN1bGF0ZSBMSVMgZnJvbSBsZWZ0IHRvIHJpZ2h0IGZvciBlYWNoIHBvc2l0aW9uKikKICAgZm9yIGk6PTEgdG8gTi0yIGRvIGlmICAoUFtpXTxQW2ktMV0pIGFuZCAoUFtpXTxQW2krMV0pIHRoZW4gcmltb3Nzb1tpXTo9MTsgCiAgIGZvciBpIDo9IDEgdG8gTi0xIGRvCiAgICAgICAgIGlmIChyaW1vc3NvW2ldPTApIHRoZW4gCiAgICAgICAgICAgICBmb3Igajo9IDAgdG8gaS0xIGRvCiAgICAgICAgICAgICAgICBiZWdpbgogICAgICAgICAgICAgICAgICBpZiAocmltb3Nzb1tqXT0wKSBhbmQgKFBbaV0gPiBQW2pdKSB0aGVuIGxlZnRMSVNbaV0gOj0gbWF4KGxlZnRMSVNbaV0sIGxlZnRMSVNbal0gKyAxKTsgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgZW5kOyAgCiAgCgkoKiBDYWxjdWxhdGUgTElTIGZyb20gcmlnaHQgdG8gbGVmdCAoZGVjcmVhc2luZyBzdWJzZXF1ZW5jZSkgZm9yIGVhY2ggcG9zaXRpb24qKQoKICAgZm9yIGkgOj0gTiAtIDIgZG93bnRvIDAgZG8KICAgICAgICBpZiAocmltb3Nzb1tpXT0wKSB0aGVuIAogICAgICAgICAgICBmb3IgIGogOj0gaSArIDEgdG8gTi0xIGRvCiAgICAgICAgICAgICAgIGJlZ2luCiAgICAgICAgICAgICAgICBpZiAocmltb3Nzb1tqXT0wKSBhbmQgKFBbaV0gPiBQW2pdKSB0aGVuIHJpZ2h0TElTW2ldIDo9IG1heChyaWdodExJU1tpXSwgcmlnaHRMSVNbal0gKyAxKTsgICAgICAgICAgICAgICAgCgkgICAgICAgZW5kOwogICAKICAgICAgICAoKiBGaW5kIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBtb3VudGFpbiBzdWJzZXF1ZW5jZSopCiAgIG1heE1vdW50YWluTGVuZ3RoIDo9IDA7CiAgIGZvciBpIDo9IDAgdG8gTi0xIGRvCgkoKkEgdmFsaWQgbW91bnRhaW4gcGVhayBtdXN0IGhhdmUgYXQgbGVhc3Qgb25lIGVsZW1lbnQgb24gYm90aCBzaWRlcyopCgkoKmxlZnRMSVNbaV0gPiAxIGVuc3VyZXMgdGhlcmUncyBhdCBsZWFzdCBvbmUgZWxlbWVudCBiZWZvcmUgcGVhayopCgkoKnJpZ2h0TElTW2ldID4gMSBlbnN1cmVzIHRoZXJlJ3MgYXQgbGVhc3Qgb25lIGVsZW1lbnQgYWZ0ZXIgcGVhayopCiAgIGlmIChsZWZ0TElTW2ldID49IDEpIGFuZCAocmlnaHRMSVNbaV0gPj0gMSkgIHRoZW4KICAJKCpUb3RhbCBtb3VudGFpbiBsZW5ndGggd2l0aCBwZWFrIGF0IGkgU3VidHJhY3QgMSBiZWNhdXNlIHBlYWsgaXMgY291bnRlZCBpbiBib3RoIGxlZnRMSVMgYW5kIHJpZ2h0TElTKikKICAgICAgICAgbWF4TW91bnRhaW5MZW5ndGggOj0gbWF4KG1heE1vdW50YWluTGVuZ3RoLCBsZWZ0TElTW2ldICsgcmlnaHRMSVNbaV0gLSAxKTsKIAkoKiBNaW5pbXVtIHJlbW92YWxzID0gdG90YWwgZWxlbWVudHMgLSBtYXhpbXVtIG1vdW50YWluIGxlbmd0aCopCiAgIEFOUzo9IE4gLSBtYXhNb3VudGFpbkxlbmd0aDsgCiAgIFdyaXRlTG4oQU5TKTsKZW5kLg==