Pagini recente » Cod sursa (job #93817) | Cod sursa (job #3196499) | Cod sursa (job #3189357) | Cod sursa (job #780700) | Cod sursa (job #153833)
Cod sursa(job #153833)
#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)
{
poz ++;
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 + 1)
printf("1\n");
else
{
poz = 1;
if (C() && poz == n + 1)
printf("1\n");
else
printf("0\n");
}
}
return 0;
}