比赛 20111102 评测结果 ATAAAAAAAAA
题目名称 麻烦的聚餐 最终得分 90
用户昵称 magic 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2011-11-02 20:53:07
显示代码纯文本
#include<iostream>
#include<cstdio>
using namespace std;
	int n,ans;
	int data[40005];
	int f[40005];
	int g[40005];
int max(int x,int y);	
int max(int x,int y)
{
	if (x>y) return x;else return y;
}
int main()
{
	freopen("egroup.in","r",stdin);
	freopen("egroup.out","w",stdout);
	scanf("%d",&n);
	for (int i=1;i<=n;i++)
	{
		scanf("%d",&data[i]);
		f[i]=1;
		g[i]=1;
	}
	for (int i=2;i<=n;i++)
	{
		for (int j=i-1;j>=1;j--)
		{
			if (data[i]>=data[j])
			{
				f[i]=max(f[i],f[j]+1);
			}
		}
	}
	for (int i=n-1;i>=1;i--)
	{
		for (int j=i+1;j<=n;j++)
		{
			if (data[i]>=data[j])
			{
				g[i]=max(g[i],g[j]+1);
			}
		}
		ans=max(g[i],ans);
	}
	printf("%d",n-ans);
	return 0;
}