#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main() {
int N;
cin>>N;
vector<bool> R(N);
int zero;
for(int i=0;i<N;i++)
{
cin>>zero;
R[i]=zero;
}
if(N==1)
{
cout<<-1;
return 0;
}
if(N==2)
{
if(R[0]==1&&R[1]==1)
{
cout<<-1;
return 0;
}
else {
cout<<1;
return 0;
}
}
if(N>=3)
{
if(R[0]==1&&R[1]==1)
{
cout<<-1;
return 0;
}
if(R[N-2]==1&&R[N-1]==1)
{
cout<<-1;
return 0;
}
}
int sum=0;
for(int i=0;i<N;i++)//N>=3
{
if(R[i]==1&&i-1>=0&&i+1<N&&R[i-1]==1&&R[i+1]==1)//中间三个1
{
cout<<-1;
break;
}
if(R[i]==1)
{
if(R[i+1]==0&&R[i+2]==1)//101型
{
sum+=1;
i=i+2;
}
else if(R[i+1]==1)//011型
{
sum+=1;
}
else if(R[i+1]==0&&R[i+2]==0)//100型
{
sum+=1;
}
}
}
cout<<sum;
}
// 64 位输出请用 printf("%lld")
将所有特殊情况考虑完全后,进行判断即可



京公网安备 11010502036488号