Pagini recente » Cod sursa (job #3320578) | Cod sursa (job #3305195) | Cod sursa (job #3332922) | Cod sursa (job #3328180) | Cod sursa (job #3331969)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("perle.in");
ofstream g("perle.out");
int n, v[10005], k, T;
bool ok;
bool A();
bool B();
bool C();
bool A()
{
if(k > n)
return 0;
++k;
return 1;
}
bool B()
{
if(k > n || v[k] == 3)
return 0;
if(v[k] == 2)
{
++k;
return B();
}
else if(v[k] == 1)
{
++k;
if(!A() || v[k] != 3)
return 0;
++k;
if(!A())
return 0;
return C();
}
return 0;
}
bool C()
{
if(k > n)
return 0;
if(v[k] == 1)
{
++k;
if(v[k] != 2)
return 0;
++k;
return A();
}
else if(v[k] == 2)
{
++k;
return 1;
}
else
{
++k;
if(!B())
return 0;
return C();
}
}
int main()
{
f >> T;
while(T--)
{
f >> n;
for(int i = 1; i <= n; i++)
f >> v[i];
k = 1, ok = 0;
if(A() && k == n + 1)
ok = 1;
k = 1;
if(B() && k == n + 1)
ok = 1;
k = 1;
if(C() && k == n + 1)
ok = 1;
g << ok << '\n';
}
f.close();
g.close();
return 0;
}