显示代码纯文本
		
		#include<iostream>
#include<cstdio>
using namespace std;
int main(){
	freopen("diningb.in","r",stdin);
	freopen("diningb.out","w",stdout);
	int n;
	int d[30001]={0},f1[30001]={0},f2[30001]={0};
	int i;
	scanf("%d",&n);
	for(i=1;i<=n;i++) scanf("%d",&d[i]);
	for(i=1;i<=n;i++){
		if(d[i]==1){
			f1[i]=f1[i-1];//1只能从1改
			f2[i]=(f2[i-1]+1<f1[i-1]+1)?f2[i-1]+1:f1[i-1]+1;//2可以从1或2改
		}
		else{
			f1[i]=f1[i-1]+1;//1只能从1改
			f2[i]=(f2[i-1]<f1[i-1])?f2[i-1]:f1[i-1];//2可以从1或2改
		}
	}
	printf("%d\n",(f1[n]<f2[n])?f1[n]:f2[n]);
	return 0;
}