比赛 20111102 评测结果 ATAAAAAAAAA
题目名称 麻烦的聚餐 最终得分 90
用户昵称 Yeehok 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2011-11-02 21:05:52
显示代码纯文本
#include<cstdio>
using namespace std;
int list[30001]={0},n;
int longdown()
{
	int ans[30001],i,j;
	for(i=0;i<n;i++)
	{
		ans[i]=1;
		for(j=0;j<i;j++)
			if(list[i]<=list[j]&&ans[j]+1>ans[i])
				ans[i]=ans[j]+1;
	}
	int maxn=0;
	for(i=0;i<n;i++)
		if(maxn<ans[i])
			maxn=ans[i];
	return maxn;
}
int longup()
{
	int ans[30001],i,j;
	for(i=0;i<n;i++)
	{
		ans[i]=1;
		for(j=0;j<i;j++)
			if(list[i]>=list[j]&&ans[j]+1>ans[i])
				ans[i]=ans[j]+1;
	}
	int maxn=0;
	for(i=0;i<n;i++)
		if(maxn<ans[i])
			maxn=ans[i];
	return maxn;
}
int main()
{
	freopen("egroup.in","r",stdin);
	freopen("egroup.out","w",stdout);
	int i;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%d",&list[i]);
	}
	int up,down;
	up=longup();
	down=longdown();
	int answ=n-(up>down ? up:down);
	printf("%d\n",answ);
	return (0);
}