Pagini recente » Cod sursa (job #2202305) | Cod sursa (job #2515993) | Cod sursa (job #594362) | Cod sursa (job #2133908) | Cod sursa (job #153817)
Cod sursa(job #153817)
#include <stdio.h>
long o, i, poz, t, n, x[10010];
bool B();
bool C();
bool A()
{
if (poz <= n)
{
poz ++;
return true;
}
return false;
}
bool B()
{
if (x[poz] == 2)
{
poz ++;
return B();
}
else
if (x[poz] == 1)
{
poz ++;
if (!A())
return false;
if (x[poz] != 3)
return false;
poz ++;
if (!A())
return false;
return C();
}
return false;
}
bool C()
{
if (x[poz] == 2)
{
poz ++;
return true;
}
else
if (x[poz] == 3)
{
poz ++;
if (!B())
return false;
return C();
}
else
{
poz ++;
if (x[poz] == 2)
return A();
else
return false;
}
}
int main()
{
freopen ("perle.in", "rt", stdin);
freopen ("perle.out", "wt", stdout);
scanf("%ld", &o);
for (t = 1; t <= o; t ++)
{
scanf("%ld", &n);
for (i = 1; i <= n; i ++)
scanf("%ld", &x[i]);
poz = 1;
if (n == 1)
printf("1\n");
else
if (B() && poz == n)
printf("1\n");
else
{
poz = 1;
if (C() && poz == n)
printf("1\n");
else
printf("0\n");
}
}
return 0;
}