666

666

暂无测试数据。

#include <cstdio>
#include <cstring>
using namespace std;

int n,a[10001],f[10000][2][2];

int main()
{
scanf("%d",&n);
for (int i=1;i<=n;i++)
scanf("%d",&a[i]);
memset(f,0,sizeof(f));
if (a[1]==0)
f[1][0][0]=1;
else if (a[1]==1)
f[1][1][0]=f[1][0][1]=1;
else if (a[1]==2)
f[1][1][1]=1;
for (int i=2;i<n;i++)
{
if (a[i]==0)
f[i][0][0]=f[i-1][0][0];
else if (a[i]==1)
{
f[i][0][1]=f[i-1][0][0];
f[i][1][0]=f[i-1][0][1];
f[i][0][0]=f[i-1][1][0];
}
else if (a[i]==2)
{
f[i][1][1]=f[i-1][0][1];
f[i][0][1]=f[i-1][1][0];
f[i][1][0]=f[i-1][1][1];
}
else
f[i][1][1]=f[i-1][1][1];
}
if (a[n]==0)
printf("%d\n",f[n-1][0][0]);
else if (a[n]==1)
printf("%d\n",f[n-1][0][1]+f[n-1][1][0]);
else if (a[n]==2)
printf("%d\n",f[n-1][1][1]);
}

信息

ID
1009
难度
(无)
分类
(无)
标签
(无)
递交数
0
已通过
0
通过率
?
上传者