记录编号 32342 评测结果 AAAAAAAAAA
题目名称 [NOIP 2004]合唱队形 最终得分 100
用户昵称 GravatarYeehok 是否通过 通过
代码语言 C++ 运行时间 0.011 s
提交时间 2011-11-06 15:47:08 内存使用 0.29 MiB
显示代码纯文本
#include<cstdio>
using namespace std;
int num[101]={0};
int up(int x,int y)
{
	int i,j,lis[101]={0};
	for(i=x;i<=y;i++)
	{
		lis[i]=1;
		for(j=x;j<i;j++)
		{
			if(lis[i]<(lis[j]+1)&&num[i]>num[j])
			{
				lis[i]=lis[j]+1;
			}
		}
	}
	int ans=0;
	for(i=x;i<=y;i++)
	{
		if(ans<lis[i])
			ans=lis[i];
	}
	return (ans);
}
int down(int x,int y)
{
	int i,j,lis[101]={0};
	for(i=x;i<=y;i++)
	{
		lis[i]=1;
		for(j=x;j<i;j++)
		{
			if(lis[i]<(lis[j]+1)&&num[i]<num[j])
			{
				lis[i]=lis[j]+1;
			}
		}
	}
	int ans=0;
	for(i=x;i<=y;i++)
	{
		if(ans<lis[i])
			ans=lis[i];
	}
	return (ans);
}
int main()
{
	freopen("chorus.in","r",stdin);
	freopen("chorus.out","w",stdout);
	int n,i;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		scanf("%d",&num[i]);
	}
	int a,max=0;
	for(i=2;i<n;i++)
	{
		a=up(1,i);
		a+=down(i+1,n);
		if(a>max)
			max=a;
	}
	printf("%d",n-max);
	fclose(stdin);
	fclose(stdout);
	return (0);
}