Pagini recente » Cod sursa (job #2730823) | Cod sursa (job #2911203) | Cod sursa (job #670099) | Cod sursa (job #1407767) | Cod sursa (job #2647021)
#include <fstream>
using namespace std;
ifstream fin( "perle.in" );
ofstream fout( "perle.out" );
const int MaxN = 10101;
int v[MaxN], k;
int okB( int pos );
int okC( int pos );
int okB( int pos ) {
if ( pos > k ) {
return 0;
}
if ( v[pos] == 2 ) {
return okB( pos + 1 );
}
if ( v[pos] == 1 && v[pos + 2] == 3 && pos + 3 <= k ) {
return okC( pos + 4 );
}
return 0;
}
int okC( int pos ) {
if ( pos > k ) {
return 0;
}
if ( v[pos] == 2 ) {
return pos + 1;
}
if ( v[pos] == 3 ) {
pos = okB( pos + 1 );
if ( pos > 0 && pos <= k ) {
return okC( pos );
}
}
if ( v[pos] == 1 && v[pos + 1] == 2 && pos + 2 <= k ) {
return pos + 3;
}
return 0;
}
int main() {
int n;
fin >> n;
for ( int i = 1; i <= n; ++i ) {
fin >> k;
for ( int j = 1; j <= k; ++j ) {
fin >> v[j];
}
if ( okB( 1 ) > k || okC( 1 ) > k || k == 1 ) {
fout << "1\n";
} else {
fout << "0\n";
}
}
fin.close();
fout.close();
return 0;
}