Pagini recente » Cod sursa (job #1977837) | Cod sursa (job #910390) | Cod sursa (job #1770965) | Cod sursa (job #853911) | Cod sursa (job #448843)
Cod sursa(job #448843)
#include<stdio.h>
int n;
int v[100009];
int rez_c(int x);
int rez_b(int x)
{
if(x>n)
return 0;
if(v[x]==2)
return rez_b(x+1);
if(v[x]==1 && v[x+2]==3 && (x+4<=n))
return rez_c(x+4);
return 0;
}
int rez_c(int x)
{
int poz;
if(x>n)
return 0;
if(v[x]==1 && v[x+1]==2 && x+1<=n)
{
return x+3;
}
if(v[x]==3)
{
poz=rez_b(x+1);
if(poz)
return rez_c(poz);
else
return 0;
}
if(v[x]==2)
{
return x+1;
}
return 0;
}
int rez()
{
if(n==1)
return 1;
if(n==2)
return 0;
if(rez_b(1)>=n)
return 1;
if(rez_c(1)>=n)
return 1;
return 0;
}
void read()
{
freopen("perle.in","r",stdin);
freopen("perle.out","w",stdout);
int t,i;
scanf("%d",&t);
for(;t;t--)
{
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&v[i]);
printf("%d\n",rez());
}
}
int main()
{
read();
return 0;
}