#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
const int maxn= 100+10;
int a[maxn];
int l[maxn],r[maxn];
int s;
void init()
{
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
}
void readdata()
{
scanf("%d",&s);
for (int i=1;i<=s;i++)
{
scanf("%d",&a[i]);
}
}
int calcl(int i)
{
if (l[i]!=-1) return l[i];
l[i]=1;
for (int j=1;j<i;j++) if (a[i]>a[j]) l[i]=max(l[i],calcl(j)+1);
return l[i];
}
int calcr(int i)
{
if (r[i]!=-1) return r[i];
r[i]=1;
for (int j=i+1;j<=s;j++) if (a[i]>a[j]) r[i]=max(r[i],calcr(j)+1);
return r[i];
}
void dp()
{
memset(l,255,sizeof(l));
memset(r,255,sizeof(r));
for (int i=1;i<=s;i++)calcl(i);
for (int i=1;i<=s;i++)calcr(i);
}
void work()
{
dp();
int best=0;
for (int i=1;i<=s;i++)
{
best=max(best,l[i]+r[i]-1);
}
printf("%d\n",s-best);
}
int main()
{
//init();
readdata();
work();
return 0;
}
rqnoj-26-合唱队形
最新推荐文章于 2020-02-18 21:11:06 发布