Pagini recente » Cod sursa (job #1156030) | Cod sursa (job #1756734) | Cod sursa (job #1583734) | Cod sursa (job #809397) | Cod sursa (job #2928174)
#include <fstream>
using namespace std;
ifstream fin("perle.in");
ofstream fout("perle.out");
int n, t, i, v[10010];
bool A();
bool B();
bool C();
bool A(){
if ( i == n + 1 )
return false;
if ( v[i] == 1 || v[i] == 2 || v[i] == 3 ){
i++;
return true;
}else{
return false;
}
}
bool B(){
if ( i == n + 1 )
return false;
if ( v[i] == 2 ){
i++;
return B();
}else{
if ( v[i] == 1 ){
i++;
bool aux = A();
if ( aux == false )
return false;
if ( v[i] != 3 )
return false;
i++;
aux = A();
if ( aux == false )
return false;
return C();
}
}
return false;
}
bool C(){
if ( i == n+1 )
return false;
if ( v[i] == 2 ){
i++;
return true;
}else{
if ( v[i] == 3 ){
i++;
bool aux = B();
if ( aux == false )
return false;
return C();
}else{
if ( v[i] == 1 && v[i + 1] == 2 && i + 1 <= n ){
i = i + 2;
return A();
}
}
}
return false;
}
int main(){
fin >> t;
for (int i1 = 1; i1 <= t; i1++ ){
fin >> n;
for (int j = 1; j <= n; j++)
fin >> v[j];
i = 1;
bool ans = A();
if ( ans == true && i == n + 1 ){
fout << 1 << "\n";
continue;
}
i = 1;
ans = B();
if ( ans == true && i == n + 1 ){
fout << 1 << "\n";
continue;
}
i = 1;
ans = C();
if ( ans == true && i == n + 1 ){
fout << 1 << "\n";
continue;
}
fout << 0 << "\n";
}
return 0;
}