Pagini recente » Cod sursa (job #1905153) | Cod sursa (job #316217) | Cod sursa (job #717800) | Cod sursa (job #439956) | Cod sursa (job #2533326)
#include <fstream>
#define f in
#define g out
using namespace std;
ifstream in ( "perle.in" );
ofstream out( "perle.out" );
int n, i, j, T;
int A(), B(), C();
int v[10009];
int A(){
if ( i == n+1 ) return 0;
if ( v[i] == 1 || v[i] == 2 || v[i] == 3 ){
i++;
return 1;
}
return 0;
}
int B(){
if ( i == n+1 )
return 0;
if ( v[i] == 2 ){
//2B
i++;
return B();
}
if ( v[i] == 1 ){
// 1A3AC
i++;
if ( !A() ) return 0;
if ( v[i] != 3 ) return 0;
i++;
if ( !A() ) return 0;
return C();
}
return 0;
}
int C(){
if ( i == n+1 )
return 0;
if ( v[i] == 2 ){
i++;
return 1;
}
if ( v[i] == 3 ){
//3BC
i++;
if ( !B() ) return 0;
return C();
}
if ( v[i] == 1 ){
//12A
i++;
if ( v[i] != 2 ){
i++;
return 0;
}
i++;
return A();
}
return 0;
}
int main() {
for ( f>>T; T--; ){
f>>n;
for ( i=1; i <= n; i++ )
f>>v[i];
i = 1;
if ( A() && i == n+1 ){
g<<"1\n";
continue;
}
i = 1;
if ( B() && i == n+1 ){
g<<"1\n";
continue;
}
i = 1;
if ( C() && i == n+1 ){
g<<"1\n";
continue;
}
g<<"0\n";
}
return 0;
}