Pagini recente » Cod sursa (job #2562030) | Cod sursa (job #1146073) | Cod sursa (job #552548) | Cod sursa (job #1854691) | Cod sursa (job #2701417)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("perle.in");
ofstream fout("perle.out");
const int LMax = 1e5;
int n, l;
int v[LMax + 5];
void Read(){
fin >> l;
for (int i = 1; i <= l; i++)
fin >> v[i];
}
int B(int ind);
int C(int ind);
int B(int ind){
if (ind > l)
return 0;
if (v[ind] == 2)
return B(ind + 1);
if (v[ind] == 1 && v[ind + 2] == 3)
return C(ind + 4);
return 0;
}
int C(int ind){
if (ind > l)
return 0;
if (v[ind] == 2)
return ind;
if (v[ind] == 1 && v[ind + 1] == 2 && ind + 2 <= l)
return ind + 2;
if (v[ind] == 3)
return C(B(ind + 1));
return 0;
}
int Verify(){
if (l == 1)
return 1;
if (B(1) == l || C(1) == l)
return 1;
return 0;
}
int main(){
fin >> n;
for (int i = 1; i <= n; i++){
Read();
if (Verify())
fout << 1 << '\n';
else
fout << 0 << '\n';
}
return 0;
}