简单推论

/**************************************************************
    Problem: 1088
    User: lxy8584099
    Language: C++
    Result: Accepted
    Time:20 ms
    Memory:900 kb
****************************************************************/
 
/*
    第一个确定 那么整个格局就确定了!
    所以 可以固定第一个然后往后判断
*/
#include<cstdio>
using namespace std;
const int N=1e4+50;
int n,a[N],b[N],ans;
bool check()
{
    for(int i=2;i<=n+1;i++)
    {
        b[i]=a[i-1]-b[i-1]-b[i-2];
        if(b[i]!=1&&b[i]!=0) return 0;
    }
    if(b[n+1]!=0) return 0;
    return 1;
}
int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++) scanf("%d",&a[i]);
    b[1]=0; ans+=check();
    b[1]=1; ans+=check();
    printf("%d\n",ans);
    return 0;
}