poj3671

#include<stdio.h>

int main(){

	int dp1[30005],dp2[30005],a[30005];

	int n,j,i,k,max;

	scanf("%d",&n);

	for(i=1;i<=n;i++)

		scanf("%d",&a[i]);

	if(a[1]==1)

		dp1[1]=1;

	else

		dp1[1]=0;

	for(i=2;i<=n;i++){

		if(a[i]==1)

			dp1[i]=dp1[i-1]+1;

		else

			dp1[i]=dp1[i-1];

	}

	if(a[n]==2)

		dp2[n]=1;

	else

		dp2[n]=0;

	for(i=n-1;i>=1;i--){

		if(a[i]==2)

			dp2[i]=dp2[i+1]+1;

		else

			dp2[i]=dp2[i+1];

	}

	max=0;

	for(i=1;i<=n;i++)

		if(max<(dp1[i]+dp2[i]))

			max=dp1[i]+dp2[i];

	printf("%d\n",n-max);

	return 0;

}

  

你可能感兴趣的:(poj)