Pagini recente » Cod sursa (job #1437384) | Cod sursa (job #1934158) | Cod sursa (job #129497) | Cod sursa (job #2731676) | Cod sursa (job #153122)
Cod sursa(job #153122)
#include<cstdio>
#define Nmax 10005
FILE *fin=freopen("perle.in","rt",stdin),
*fout=freopen("perle.out","wt",stdout);
int n,a[Nmax],l;
int fcb(int k);
int fcc (int k)
{
if(a[k] == 2 && k == l-1)
return 0;
if(k == l-1 && a[k-1] == 2)
return 1;
else if (a[k] == 3)
return 1 & fcb(k+1) & fcc(k+2);
else if (a[k] == 1)
return 1 & fcc(k+1);
else if(a[k] == 2 && a[k-1] == 1)
return 1 & fcc(k+1);
else
return 0;
}
int fcb (int k)
{
if(a[k] == 2 && k==l-1)
return 0;
if(a[k] == 2)
return 1 & fcb(k+1);
else if(a[k] == 1)
return 1 & fcb(k+2);
else if (a[k] == 3 && a[k-2] == 1)
return 1 & fcb(k+2);
else if(a[k-2] == 3 && a[k-4] == 1)
return 1 & fcc(k+1);
else
return 0;
}
void solve()
{
scanf("%d",&l);
for(int i=0; i<l; i++)
{
scanf("%d",a + i);
}
if(l == 1)
{
printf("1\n");
return ;
}
if(l >= 2)
{
if(a[0] == 1 || a[0] == 2)
printf("%d\n",fcb(0));
if(a[0] == 3)
printf("%d\n",fcc(0));
}
}
int main()
{
scanf("%d",&n);
for(int i=0;i<n;i++)
solve();
return 0;
}