Pagini recente » Cod sursa (job #2619961) | Cod sursa (job #2717957) | Cod sursa (job #2822115) | Cod sursa (job #3259261) | Cod sursa (job #1304812)
#include <cstdio>
using namespace std;
FILE *f = fopen( "perle.in", "r" );
FILE *g = fopen( "perle.out", "w" );
const int MAX = 10010;
int a[MAX];
int N, nn;
int nr;
int B( int poz );
int C( int poz );
int main()
{
int i, j;
fscanf( f, "%d", &N );
for ( i = 1; i <= N; i++ )
{
fscanf( f, "%d", &nn );
for ( j = 1; j <= nn; j++ )
{
fscanf( f, "%d", &a[j] );
a[nr]++;
}
if ( nn == 1 || B(1) == nn + 1 || C(1) == nn + 1 )
fprintf( g, "1\n" );
else
fprintf( g, "0\n" );
}
fclose(f);
fclose(g);
return 0;
}
int B( int poz )
{
if ( poz > nn + 1 ) return nn + 2;
if ( a[poz] == 2 ) return B( poz + 1 );
if ( a[poz] == 1 && a[poz + 2] == 3 ) return C( poz + 4 );
return nn + 2;
}
int C( int poz )
{
if ( poz > nn + 1 ) return nn + 2;
if ( a[poz] == 2 ) return poz + 1;
if ( a[poz] == 3 ) return C( B( poz + 1 ) );
if ( a[poz] == 1 && a[poz + 1] == 2 ) return poz + 3;
return nn + 2;
}