#include<cstdio>
#include<iostream>
#include<vector>
using namespace std;
struct node
{
int first;
int last;
node (int a,int b)
:first(a)
,last(b)
{}
};
vector<int >m;
vector<node>n;
int main ()
{
int k;
while(scanf("%d",&k))
{
for(int i=0;i<k;i++)
{
int ii;
cin>>ii;
m.push_back(ii);
n.push_back(node(1,0));
}
int sum=0;
for(int i=0;i<k;i++)
{
for(int j=0;j<i;j++)
{
if(m[i]<=m[j])
{
n[i].first=max(n[i].first,n[j].first+1);
}
}
for(int j=k-1;j>i;j--)
{
if(m[i]>m[j])
{
n[i].last=max(n[i].last,n[j].last+1);
}
}
sum=max(sum,n[i].first+n[i].last);
}
cout<<k-sum<<endl;
}
system("pause");
return 0;
}
动态规划c++ ---合唱队列
猜你喜欢
转载自blog.csdn.net/baidu_37143827/article/details/104638276
今日推荐
周排行