Pagini recente » Cod sursa (job #101850) | Cod sursa (job #1253855) | Cod sursa (job #2800422) | Cod sursa (job #2156377) | Cod sursa (job #3270613)
#include <iostream>
#include <fstream>
#define nl '\n'
using namespace std;
ifstream fin("perle.in");
ofstream fout("perle.out");
const int NMAX = 1e4+5;
int n, v[NMAX], i;
bool A();
bool B();
bool C();
bool A()
{
if (i == n+1)
return 0;
i++;
return 1;
}
bool B()
{
if (i == n+1 || v[i] == 3)
return 0;
if (v[i] == 1)
{
i++;
if (!A())
return 0;
if (v[i] != 3)
return 0;
i++;
if (!A())
return 0;
return C();
}
if (v[i] == 2)
{
i++;
return B();
}
}
bool C()
{
if (i == n+1)
return 0;
if (v[i] == 1)
{
i++;
if (v[i] != 2)
return 0;
i++;
return A();
}
if (v[i] == 2)
{
i++;
return 1;
}
if (v[i] == 3)
{
i++;
if (!B())
return 0;
return C();
}
}
void solve()
{
bool ok = 0;
fin >> n;
for (int x = 1; x <= n; x++)
fin >> v[x];
i = 1;
ok = (A() && i == n+1);
i = 1;
if (!ok)
ok = (B() && i == n+1);
i = 1;
if (!ok)
ok = (C() && i == n+1);
if (ok)
fout << 1;
else
fout << 0;
fout << nl;
return;
}
int main()
{
int t;
fin >> t;
while (t--)
solve();
return 0;
}