Pagini recente » Cod sursa (job #3217531) | Cod sursa (job #1100313) | Cod sursa (job #666536) | Cod sursa (job #1259294) | Cod sursa (job #2157263)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("perle.in");
ofstream fout("perle.out");
int n, i, j, l, v[10010];
int b(int x);
int c(int x);
int b(int x)
{
if(x<=l)
{
if(v[x] == 2)
{
/// verific daca v[x+1] e b
return b(x+1);
}
else if(v[x] == 1)
{
/// verific daca v[x+2] e 3
/// verific daca v[x+4] e c
if(v[x+2] == 3)
{
return c(x+4);
}
}
else
{
return 0;
}
}
else
{
/// false
return 0;
}
}
int c(int x)
{
if(x<=l)
{
if(v[x] == 3)
{
///verific daca v[x+1] e b
///verific daca v[x+2] e c
return b(x+1) && c(x+2);
}
else if(v[x]==1)
{
///verific daca v[x+1] e 2
///true
if(v[x+1] == 2)
{
return 1;
}
}
else
{
/// false
return 0;
}
}
else
{
return 0;
}
}
int main()
{
fin >> n;
for(i=1; i<=n; i++)
{
fin >> l;
for(j=1; j<=l; j++)
{
fin >> v[j];
}
if(l == 1)
{
fout << 1;
}
else if(b(1) == 1 || c(1) == 1)
{
fout << 1 << '\n';
}
else
{
fout << 0 << '\n';
}
}
return 0;
}