Pagini recente » Cod sursa (job #978680) | Istoria paginii runda/biro_daily_quest_no.1/clasament | Cod sursa (job #1563123) | Cod sursa (job #159669) | Cod sursa (job #2138958)
#include <fstream>
using namespace std;
ifstream fin("perle.in");
ofstream fout("perle.out");
int T,n,v[10005],i;
int A(),B(),C();
int A()
{
if (i == n+1)
return 0;
if (v[i] == 1 || v[i] == 2 || v[i] == 3)
{
i++;
return 1;
}
else
return 0;
}
int B()
{
if (i == n+1)
return 0;
if (v[i] == 2)
{
i++;
return B();
}
else
if (v[i] == 1)
{
i++;
int aux = A();
if (aux == 0)
return 0;
if (v[i] != 3)
return 0;
i++;
aux = A();
if (aux == 0)
return 0;
return C();
}
else
return 0;
}
int C()
{
if (i == n+1)
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 aux = B();
if (aux == 0)
return 0;
return C();
}
}
int main()
{
fin >> T;
for (;T--;)
{
fin >> n;
for (i=1; i<=n; i++)
fin >> v[i];
i = 1;
int rez = A();
if (rez == 1 && i == n+1)
{
fout << 1 << "\n";
continue;
}
i = 1;
rez = B();
if (rez == 1 && i == n+1)
{
fout << 1 << "\n";
continue;
}
i = 1;
rez = C();
if (rez == 1 && i == n+1)
{
fout << 1 << "\n";
continue;
}
fout << 0 << "\n";
}
return 0;
}