Pagini recente » Cod sursa (job #2480156) | Rating Achimescu Valentin (Valy11) | Cod sursa (job #639414) | Cod sursa (job #456795) | Cod sursa (job #200271)
Cod sursa(job #200271)
#include <cstdio>
#define FOR(i,a,b) for(int i=a;i<=b;++i)
#define IN "perle.in"
#define OUT "perle.out"
int a[1<<17],N,T;
void scan()
{
freopen(IN,"r",stdin);
freopen(OUT,"w",stdout);
scanf("%d",&T);
}
int makec(int x);
int makeb(int x)
{
if( x > N )
return 0;
if( a[x]==2 )
return makeb(x+1);
if( a[x] == 1 && a[x+2] == 3 && x+4 <= N )
return makec(x+4);
return 0;
}
int makec(int x)
{
if( x > N )
return 0;
if( a[x] == 1 && a[x+1] == 2 && x+1 <= N )
return x+3;
if (a[x]==3)
{
int y = makeb(x+1);
if (y!=0)
return makec(y);
else
return 0;
}
if( a[x] == 2 )
return x+1;
return 0;
}
inline int solve()
{
scanf("%d", &N);
FOR(i,1,N)
scanf("%d", &a[i]);
if(N==1)
return 1;
if(makeb(1) >= N)
return 1;
if(makec(1) >= N)
return 1;
return 0;
}
int main()
{
scan();
while(T--)
printf("%d\n", solve() );
return 0;
}