记录编号 31784 评测结果 AAAAAAAAAAA
题目名称 [USACO Feb08] 麻烦的聚餐 最终得分 100
用户昵称 GravatarQhelDIV 是否通过 通过
代码语言 C++ 运行时间 0.026 s
提交时间 2011-11-03 20:51:05 内存使用 0.38 MiB
显示代码纯文本
#include<fstream>
using namespace std;
ifstream fin("egroup.in");
ofstream fout("egroup.out");

int N,A[30002],m1,m2,m3,M1,M2;

int Max(int o1,int o2,int o3)
{
int m=0;
	if(o1>m)
		m=o1;
	if(o2>m)
		m=o2;
	if(o3>m)
		m=o3;
	return m;
}

int main()
{
int i,j,temp;
fin>>N;
	
	for(i=1;i<=N;i++)
	{
		fin>>A[i];
		if(A[i]==1)
			m1++;
		if(A[i]==2)
			m2=(m1>m2?m1:m2) +1;
		if(A[i]==3)
		{
			m3=(m3>(m1>m2?m1:m2)?m3:(m1>m2?m1:m2))+1;
		}
	}
	M1=N-Max(m1,m2,m3);
	
	m1=0;m2=0;m3=0;
	for(i=1,j=N;i<=j;i++,j--)
	{
		temp=A[i];
		A[i]=A[j];
		A[j]=temp;
	}
	
	
	for(i=1;i<=N;i++)
	{
		if(A[i]==1)
			m1++;
		if(A[i]==2)
			m2=(m1>m2?m1:m2) +1;
		if(A[i]==3)
		{
			m3=(m3>(m1>m2?m1:m2)?m3:(m1>m2?m1:m2))+1;
		}
	}
	M2=N-Max(m1,m2,m3);
	
	fout<<(M1>M2?M2:M1);
	fin.close();
	fout.close();
	return 0;
}