Cod sursa(job #652199)

Utilizator ELHoriaHoria Cretescu ELHoria Data 23 decembrie 2011 13:25:24
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>

using namespace std;

ifstream fin("perle.in");
ofstream fout("perle.out");

int v[10005] , N  , T , x;

int C(int i);

int B(int i)
{
	if(i > N + 1) return i;
	if(v[i] == 2) return B(i + 1);
	if(v[i] == 1 && v[i+2] == 3) return C(i + 4);
	return N + 2;
}

int C(int i)
{
	if(i > N + 1) return i;
	if(v[i] == 2) return i + 1;
	if(v[i] == 3) return C(B(i + 1));
	if(v[i] == 1 && v[i+1] == 2) return i + 3;
	return N + 2;
}

int main()
{
	for(fin>>T;T;T--)
	{
		fin>>N;
		for(int i = 1;i<=N;++i)
			fin>>v[i];
		if(N == 1)
			fout<<1<<'\n';
		else
		{
			x = B(1);
			if(x != N + 1) x = C(1);
			if(x == N + 1) fout<<1<<'\n'; else fout<<0<<'\n';
		}
	}
	return 0;
}