Pagini recente » Cod sursa (job #2572526) | Cod sursa (job #2122240) | Cod sursa (job #1940104) | Cod sursa (job #350593) | Cod sursa (job #2209067)
#include <cstdio>
#define MAXN 10000
using namespace std;
int v[MAXN+5];
int transformB( int n, int i );
int transformC( int n, int i );
int transformB( int n, int i )
{
if( i>n )
return 0;
if( v[i]==2 )
return transformB(n,i+1);
if( v[i]==1 && v[i+2]==3 )
return transformC(n,i+4);
return 0;
}
int transformC( int n, int i )
{
if( i>n )
return 0;
if( v[i]==2 )
return i+1;
if( v[i]==3 )
return transformC(n,transformB(n,i+1));
if( i+1<=n && v[i]==1 && v[i+1]==2 )
return i+3;
return 0;
}
int main()
{
freopen( "perle.in", "r", stdin );
freopen( "perle.out", "w", stdout );
int n;
scanf( "%d", &n );
while( n )
{
int l;
scanf( "%d", &l );
for( int i=1;i<=l;i++ )
scanf( "%d", &v[i] );
if( l==1 )
printf( "1\n" );
else
if( transformB(l,1)==l+1 || transformC(l,1)==l+1 )
printf( "1\n" );
else
printf( "0\n" );
n--;
}
return 0;
}