Pagini recente » Cod sursa (job #889197) | Cod sursa (job #1534562) | Cod sursa (job #630215) | Cod sursa (job #2950303) | Cod sursa (job #153156)
Cod sursa(job #153156)
#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] == 3)
{
for(int i=k; a[i] == 2; i++)
k=k+i-1;
return 1 & fcb(k) & fcc(k+4);
}
else if (a[k] == 1 && a[k+1] == 2 && k== l-3)
return 1 ;
else if (a[k] == 1 && a[k+1] == 2)
return 1 & (fcb(k+4) || fcc(k+4));
else if(a[k] == 2 && k== l-1)
return 1;
else if(a[k] == 2)
return 1 & (fcc(k+1) || fcb(k+1));
else
return 0;
}
int fcb (int k)
{
if(a[k] == 2)
return 1 & fcb(k+1);
else if(a[k] == 1 && a[k+2] == 3)
return 1 & fcc(k+4);
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;
}