Pagini recente » Cod sursa (job #2252046) | Cod sursa (job #155482) | Cod sursa (job #1278555) | Cod sursa (job #1330534) | Cod sursa (job #2157464)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("perle.in");
ofstream fout ("perle.out");
int n, l, v[ 10005 ], i ,j;
void b ( int &x );
void c ( int &x );
void b ( int & x )
{
if ( x < l )
{
if ( v[ x ] == 2 && x + 1 <= l )
{
/// verific daca v[ x + 1 ] = b
x++;
b ( x );
}
else if ( v[ x ] == 1 && x + 4 <= l )
{
/// verific daca v[ x + 2 ] == 3
/// verific daca v[ x + 4 ] == c
if ( v[ x + 2 ] == 3 )
{
x += 4;
c ( x );
}
}
}
}
void c ( int & x )
{
if ( x <= l )
{
if ( v[ x ] == 2 )
{
x++;
}
else if ( v[ x ] == 3 && x + 2 <= l )
{
/// verific daca v[ x + 1 ] == b
/// verific daca v[ x + 2 ] == c
x++;
b ( x );
x = x;
c ( x );
}
else if ( v[ x ] == 1 && x + 1 <= l )
{
/// verific daca v[ x + 1 ] == 2
if ( v[ x + 1 ] == 2 )
{
x += 2;
}
}
}
}
int main()
{
int x;
fin >> n;
for ( i = 1; i <= n; i++ )
{
fin>>l;
for ( j = 1; j <= l; j++ )
{
fin>>v[ j ];
}
x = 1;
b ( x );
if ( l == 1 )
{
fout << 1 << '\n';
}
else if ( x == l + 1 )
{
fout<< 1 << '\n';
}
else
{
x = 1;
c ( x );
if ( x == l + 1 )
{
fout<< 1 << '\n';
}
else
{
fout<< 0 << '\n';
}
}
}
return 0;
}