记录编号 31798 评测结果 AAAAAAAAAAA
题目名称 [USACO Feb08] 麻烦的聚餐 最终得分 100
用户昵称 GravatarMakazeu 是否通过 通过
代码语言 C++ 运行时间 0.024 s
提交时间 2011-11-03 21:45:57 内存使用 0.27 MiB
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cstdlib>
using namespace std;

int Max2(int a,int b)
{
	if(b>a)
		a=b;
	return a;
}

int Max3(int a,int b,int c)
{
	if(b>a)
		a=b;
	if(c>a)
		a=c;
	return a;
}

void work()
{
	int Q[4]={0,0,0,0};
	int H[4]={0,0,0,0};
	int N;
	int Tmp=0;

	scanf("%d\n",&N);
	
	for (int i=1;i<=N;i++)
	{
		cin>>Tmp;
		if(Tmp==1)
		{
			Q[1]++;
			H[1]=Max3(H[1],H[2],H[3])+1;
			continue;
		}
		if(Tmp==2)
		{
			Q[2]=Max2(Q[1],Q[2])+1;
			H[2]=Max2(H[2],H[3])+1;
			continue;
		}
		Q[3]=Max3(Q[1],Q[2],Q[3])+1;
		H[3]++;
	}
	int MAX1=Max3(H[1],H[2],H[3]);
	int MAX2=Max3(Q[1],Q[2],Q[3]);
	MAX1=N-Max2(MAX1,MAX2);
	printf("%d\n",MAX1);
}

int main()
{
	freopen("egroup.in","r",stdin);
	freopen("egroup.out","w",stdout);
	work(); 
	return 0;
}