记录编号 245706 评测结果 AAAAAAAAAAA
题目名称 [USACO Feb08] 麻烦的聚餐 最终得分 100
用户昵称 Gravatarliu_runda 是否通过 通过
代码语言 C++ 运行时间 0.006 s
提交时间 2016-04-04 14:26:45 内存使用 0.48 MiB
显示代码纯文本
#include<cstdio>
int a[50000];
int max(int a,int b){
	return a>b?a:b;
}
int main(){
	freopen("egroup.in","r",stdin);
	freopen("egroup.out","w",stdout);
	int n;scanf("%d",&n);
	for(int i=1;i<=n;++i)scanf("%d",a+i);
	int f[4]={0};//以1、2、3结尾的最长不下降序列 
	int ans1=0,now;
	for(int i=1;i<=n;++i){
		now=0;
		for(int j=1;j<=a[i];++j)now=max(now,f[j]+1);
		ans1=max(ans1,now);
		f[a[i]]=max(f[a[i]],now); 
	}
	int ans2=0;
	f[1]=f[2]=f[3]=0;
	for(int i=1;i<=n;++i){
		now=0;
		for(int j=3;j>=a[i];--j)now=max(now,f[j]+1);
		ans2=max(ans2,now);
		f[a[i]]=max(f[a[i]],now);
	}
//	printf("%d %d\n",ans1,ans2);
	printf("%d",n-max(ans1,ans2));
	fclose(stdin);fclose(stdout);
	return 0;
}