#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
//寻找连续最长子序列
int a[10] ={-2,1,-3,4,-1,5,3,-10,-8,1};
int dp[10];
dp[0] = -2;
for(int i=1 ; i<10 ; i++)
{
dp[i] = max(dp[i-1]+a[i],a[i]);
cout << dp[i] <<endl;
}
return 0;
}
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
int n;
while(cin >> n)
{
vector<int> vec1;
int x;
for(int i=0 ; i<n ; i++)
{
cin >> x;
vec1.push_back(x);
}
//dp1 需找递增最长子序列
vector<int> dp1(n,1);
for(int i=0 ; i<n ; i++)
{
for(int j=0 ; j<i ; j++)
{
if(vec1[i] > vec1[j])
dp1[i] = max(dp1[i],dp1[j]+1);
}
}
reverse(vec1.begin(),vec1.end());
//dp2 需找递增最长子序列
vector<int> dp2(n,1);
for(int i=0 ; i<n ; i++)
{
for(int j=0 ; j<i ; j++)
{
if(vec1[i] > vec1[j])
dp2[i] = max(dp2[i],dp2[j]+1);
}
}
reverse(dp2.begin(),dp2.end());//递减计数
int max = 0;
for(int i=0 ; i<n ; i++)
{
if(dp2[i]+dp1[i] > max)
max = dp2[i]+dp1[i] ;
}
cout << n-max+1 <<endl;//重复一个人
}
}