Pagini recente » Cod sursa (job #135854) | Cod sursa (job #2578034) | Cod sursa (job #1842425) | Cod sursa (job #426652) | Cod sursa (job #396836)
Cod sursa(job #396836)
#include<stdio.h>
#define N 10005
int n, v[N];
int A();
int B(int i);
int C(int i);
int main()
{
freopen("perle.in","r",stdin);
freopen("perle.out","w",stdout);
int t,j,ok;
scanf("%d",&t);
for(; t; --t)
{
scanf("%d", &n);
for(j=1; j<=n; ++j)
scanf("%d", &v[j]);
ok=A();
printf("%d\n",ok);
}
return 0;
}
int A()
{
if(n==1)return 1;
if(n==2)return 0;
if(v[1]==3) return C(1);
return B(1);
}
int C(int i)
{
if(v[i]==2 && i==n)return 1;
if(v[i]==2) return C(i+1);
if(v[i]==3) return B(i+1);
if(v[i]==1 && v[i+1]==2 && i+2==n) return 1;
if(v[i]==1 && v[i+1]==2) return C(i+3);
return 0;
}
int B(int i)
{
if(v[i]==2) return B(i+1);
if(v[i]==1 && v[i+2]==3)return C(i+4);
return C(i+1);
}