其实这道水题没难度,只是刚开始没弄懂题是让干啥的,求把这些灯变成开关交叉的状态所需要的最少步骤,若第一个的开关确定,那么这一串得就也确定了,所以分别求第一个灯是0和1的步骤,取最小即可
#include<stdio.h>
int main()
{
int k,i,n,num1,num2,a[10003];
while(scanf("%d",&n)!=EOF)
{
num1=num2=0;
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
for(i=1;i<=n;i++)
if(i%2!=0)
{
if(a[i]!=1)
num1++;
if(a[i]!=0)
num2++;
}
else
{
if(a[i]!=0)
num1++;
if(a[i]!=1)
num2++;
}
printf("%d\n",(num1<num2)?num1:num2);
}
return 0;
}