Pagini recente » Cod sursa (job #551685) | Cod sursa (job #976899) | Cod sursa (job #299393) | Cod sursa (job #36157) | Cod sursa (job #2928138)
// https://www.infoarena.ro/problema/perle
#include <fstream>
using namespace std;
ifstream fin("perle.in");
ofstream fout("perle.out");
short v[10010];
int p = 0;
bool B();
bool C();
bool B()
{
if(v[p] == 2)
{
p++;
return B();
}
else if (v[p] == 1 && v[p+2] == 3 && v[p+4] != 0)
{
p += 4;
return C();
}
else return false;
}
bool C()
{
if(v[p] == 1 && v[p+1] == 2 && v[p+2] != 0)
{
return true;
}
else if (v[p] == 3)
{
p++;
bool v = B();
p++;
v = v && C();
if(v) return true;
}
else if(v[p] == 2)
{
return true;
}
else return false;
}
int main()
{
int n;
fin >> n;
for(int i = 0; i < n; i++)
{
int x;
fin >> x;
for(int j = 0; j < x; j++)
{
fin >> v[j];
}
if(x == 1) fout << 1;
else if(v[p] == 2 || (v[p] == 1 && v[p+2] == 3 && v[p+4] != 0))
{
fout << B() << "\n";
}
else if(v[p] == 3 || (v[p] == 1 && v[p] ==2 && v[p+2] != 0))
{
fout << C() << "\n";
}
else fout << 0 << "\n";
}
}