Pagini recente » Cod sursa (job #1279395) | Cod sursa (job #712642) | Cod sursa (job #1395321) | Cod sursa (job #750795) | Cod sursa (job #2298416)
#include <iostream>
#include <cstdio>
using namespace std;
int a[10005], n;
bool ok = 1;
void createBC(int i, int t)
{
if(t == 1)
{
if(a[i] == 2 && i+1<n)
{
a[i] = -1;
createBC(i+1, 1);
}
else if(a[i] == 1 && a[i+2] == 3 && i+4<n)
{
a[i] = -1;
a[i+1] = -1;
a[i+2] = -1;
a[i+3] = -1;
createBC(i+4, 2);
}
}
else
{
if(a[i] == 2)
{
a[i] = -1;
}
else if(a[i] == 3)
{
a[i] = -1;
createBC(i+1, 1);
while(a[i] == -1)
i++;
if(i>=n)
ok = 0;
else
createBC(i, 2);
}
else if(a[i] == 1 && a[i+1] == 2)
{
a[i] = -1;
a[i+1] = -1;
a[i+2] = -1;
}
}
}
void creareNr()
{
ok = 1;
scanf("%d", &n);
for(int i = 0; i<n; i++)
{
scanf("%d", &a[i]);
}
int i = 0;
if(n == 1)
a[i] = -1;
else if(a[i] == 2 && i+1<n)
{
a[i] = -1;
createBC(i+1, 1);
}
else if(a[i] == 1 && a[i+2] == 3 && i+4<n)
{
a[i] = -1;
a[i+1] = -1;
a[i+2] = -1;
a[i+3] = -1;
createBC(i+4, 2);
}
else if(a[i] == 2)
{
a[i] = -1;
}
else if(a[i] == 3)
{
a[i] = -1;
createBC(i+1, 1);
while(a[i] == -1)
i++;
if(i>=n)
ok = 0;
else
createBC(i, 2);
}
else if(a[i] == 1 && a[i+1] == 2)
{
a[i] = -1;
a[i+1] = -1;
a[i+2] = -1;
}
if(a[n-1] == -1 && ok == 1)
printf("1\n");
else
printf("0\n");
}
int main()
{
freopen("perle.in", "r", stdin);
freopen("perle.out", "w", stdout);
int m = 0;
scanf("%d", &m);
for(int i = 0; i<m; i++)
creareNr();
return 0;
}