Pagini recente » Cod sursa (job #1623306) | Monitorul de evaluare | Cod sursa (job #2706039) | Cod sursa (job #2020831) | Cod sursa (job #390844)
Cod sursa(job #390844)
#include<stdio.h>
const char in[]="perle.in";
const char out[]="perle.out";
const int N=10005;
int v[N], n;
int c(int i);
int b(int i);
int a()
{
if(n == 1)
return 1;
if(n == 2)
return 0;
if(v[1] == 3)
return c(1);
return b(1);
}
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);
}
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);
}
int main()
{
freopen(in,"r",stdin);
freopen(out,"w",stdout);
int T, j;
scanf("%d", &T);
for(;T--;)
{
scanf("%d", &n);
for(j=1;j<=n;++j)
scanf("%d", &v[j]);
printf("%d\n", a());
}
return 0;
}