Pagini recente » Cod sursa (job #1859410) | Cod sursa (job #1314511) | Cod sursa (job #8454) | Cod sursa (job #2392028) | Cod sursa (job #2927507)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("perle.in");
ofstream out("perle.out");
int A(), B(), C(), verify;
int v[100010];
int nr, n, i;
int A()
{
if (i > n)
return 0;
if (v[i] == 1 || v[i] == 2 || v[i] == 3)
{
i++;
return 1;
}
else return 0;
}
int B()
{
if (i > n)
return 0;
if (v[i] == 2)
{
i++;
return B();
}
else if (v[i] == 1)
{
i++;
int a = A();
if (a == 0)
return 0;
if (v[i] != 3)
return 0;
i++;
a = A();
if (a == 0)
return 0;
return C();
}
else return 0;
}
int C()
{
if (i > n)
return 0;
if (v[i] == 2)
{
i++;
return 1;
}
else if (v[i] == 1)
{
i++;
if (v[i] != 2)
{
i++;
return 0;
}
else
{
i++;
return A();
}
}
else
{
i++;
int b = B();
if (b == 0)
return 0;
return C();
}
}
int main()
{
for (in >> nr ; nr--;)
{
in >> n;
for (i = 1; i <= n; i++)
in >> v[i];
i = 1;
verify = A();
if (verify == 1 && i > n)
{
out << 1 << '\n';
continue;
}
i = 1;
verify = B();
if (verify == 1 && i > n)
{
out << 1 << '\n';
continue;
}
i = 1;
verify = C();
if (verify == 1 && i > n)
{
out << 1 << '\n';
continue;
}
out << 0 << '\n';
}
return 0;
}