#include <bits/stdc++.h> using namespace std; vector<int>h; int n; int long_up(int l,int r) { int maxl=1; int dp[100]; for(int i=0;i<100;i++) dp[i]=1; for(int i=l;i<=r;i++) { for(int j=l;j<i;j++) { if(h[i]>h[j]) { dp[i]=max(dp[j]+1,dp[i]); } } maxl=max(maxl,dp[i]); } return maxl; } int main() { while(cin>>n) { h.clear(); int data; for(int i=0;i<n;i++) { cin>>data; h.push_back(data); } //从前往后,计算以i收尾的最长上升子序列 int a[n]; for(int i=0;i<h.size();i++) { a[i]=long_up(0,i); } //从后往前,计算以n-1-i收尾的最长上升子序列 int b[n]; reverse(h.begin(),h.end()); for(int i=0;i<h.size();i++) { b[i]=long_up(0,i); } int maxl=1; //统计0~n-1,取能够组成合唱队的最大值,即a[i]+b[n-1-i]-1的最值 for(int i=0;i<n;i++) { maxl=max(maxl,a[i]+b[n-1-i]-1); } cout<<n-maxl; } } // 64 位输出请用 printf("%lld")