记录编号 31716 评测结果 AAAAAAAAAAA
题目名称 [USACO Feb08] 麻烦的聚餐 最终得分 100
用户昵称 Gravatar苏轼 是否通过 通过
代码语言 C++ 运行时间 0.042 s
提交时间 2011-11-03 16:10:09 内存使用 0.27 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
using namespace std;
int q[4]={0},w[4]={0},number;
int Max(int a,int b,int c)
{
	if (a>=b&&a>=c)
		return a;
	if (b>=a&&b>=c)
		return b;
	if (c>=a&&c>=b)
		return c;
}
int main()
{
	freopen ("egroup.in","r",stdin);
	freopen ("egroup.out","w",stdout);
	scanf("%d",&number);
	for (int i=0;i<number;i++)
	{
		int a;
		cin>>a;
		if (a==1)
		{
			q[1]=Max(q[2]+1,q[3]+1,q[1]+1);
			w[1]=Max(w[1]+1,0,0);
		}
		if (a==2)
		{
			q[2]=Max(q[3]+1,q[2]+1,0);
			w[2]=Max(w[1]+1,w[2]+1,0);
		}
		if (a==3)
		{
			q[3]=Max(q[3]+1,0,0);
			w[3]=Max(w[1]+1,w[2]+1,w[3]+1);
		}
	}
	q[0]=Max(q[1],q[2],q[3]);
	w[0]=Max(w[1],w[2],w[3]);
	cout<<number-Max(0,q[0],w[0]);
	return 0;
}