Pagini recente » Cod sursa (job #3229352) | Cod sursa (job #3257462) | Cod sursa (job #2739426) | Cod sursa (job #249154) | Cod sursa (job #3278845)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("perle.in");
ofstream fout("perle.out");
const int NMAX = 12;
int q;
int n, p;
int v[NMAX+1];
int A(); int B(); int C();
int A()
{
if(v[p] == 1 || v[p] == 2 || v[p] == 3)
return 1;
return 0;
}
int B()
{
if(v[p] == 2)
{
p++;
return B();
}
if(v[p] == 1)
{
p++;
int ok1 = A();
p++;
int ok2 = v[p] == 3;
p++;
int ok3 = A();
p++;
int ok4 = C();
return (ok1 && ok2 && ok3 && ok4);
}
}
int C()
{
if(v[p] == 2)return 1;
if(v[p] == 3)
{
p++;
int ok1 = B();
p++;
int ok2 = C();
return (ok1 && ok2);
}
if(v[p] == 1)
{
p++;
int ok1 = v[p] == 2;
p++;
int ok2 = A();
return (ok1 && ok2);
}
}
int main()
{
fin >> q;
while(q--)
{
int ok = 0;
fin >> n;
for(int i=1; i<=n; i++)
fin >> v[i];
p = 1;
int ok1 = A() && p == n;
p = 1;
int ok2 = B() && p == n;
p = 1;
int ok3 = C() && p == n;
fout << (ok1 || ok2 || ok3) << '\n';
}
return 0;
}