显示代码纯文本
#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;
}