Pagini recente » Cod sursa (job #1060121) | Cod sursa (job #2640102) | Cod sursa (job #1970386) | Cod sursa (job #2924194) | Cod sursa (job #1841523)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("perle.in");
ofstream fout("perle.out");
#define f first
#define s second
int v[ 10010 ],i,j,n,m,t,k;
int perlaB( int poz );
int perlaC( int poz );
int main()
{
#ifndef ONLINE_JUDGE
#define cin fin
#endif
cin.tie( 0 );
fin>>t;
while( t-- )
{
fin>>n;
for( i = 1 ; i <= n ; i++ )
fin>>v[ i ];
if( n == 1 )
fout<<1<<'\n';
else
{
if( perlaB( 1 ) == n || perlaC( 1 ) == n )
fout<<1<<'\n';
else
fout<<0<<'\n';
}
}
return 0;
}
///returneaza pozitia pe care se termina sirul
int perlaB( int poz )
{
if( poz > n )
return 0;
if( v[ poz ] == 2 )
return perlaB( poz + 1 );
if( v[ poz ] == 1 && v[ poz + 2 ] == 3 )
return perlaC( poz + 4 );
return 0;
}
int perlaC( int poz )
{
if( poz > n )
return 0;
if( v[ poz ] == 2 )
return poz;
if( v[ poz ] == 3 )
{
int x = perlaB( poz + 1 );
if( x == 0 )
return 0;
return perlaC( x + 1 );
}
if( v[ poz ] == 1 && v[ poz + 1 ] == 2 )
return poz + 2;
return 0;
}