某一位的状态可以由上面的和上上面的推过来
所以枚举第一位有没有雷
dp方程:
b[i]=a[i-1]-b[i-2]-b[i-1];
#include<cstdio>
#include<iostream>
#include<cmath>
#include<cstring>
#include<stdlib.h>
using namespace std;
int n,a[19999],b[19999], ans;
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
for(int i=0;i<=1;i++)
{
b[0]=0;
b[1]=i;
for(int j=2;j<=n+1;j++)
{
b[j]=a[j-1]-b[j-2]-b[j-1];
if(b[j]>1||b[j]<0)break;
if(j==n+1&&b[n+1]==0) ans++;
}
}
printf("%d",ans);
}