Cod sursa(job #1205660)

Utilizator pulseOvidiu Giorgi pulse Data 7 iulie 2014 16:25:01
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
#define DIM 10005
#define INF 0x3f3f3f3f

using namespace std;

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

int n, q;
int v[DIM];

int vC(int);

int vB(int poz)
{
	if (poz > n)
		return INF;
	if (v[poz] == 2)
		return vB(poz + 1);
	if (v[poz] == 1 && v[poz + 2] == 3)
		return vC(poz + 4);
	return INF;
}

int vC(int poz)
{
	if (poz > n)
		return INF;
	if (v[poz] == 1 && v[poz + 1] == 2)
		return poz + 2;
	if (v[poz] == 2)
		return poz;
	if (v[poz] == 3)
		return vC( 1 + vB(poz + 1 ) );
	return INF;
}

int main()
{
	fin >> q;
	while(q--)
	{
		fin >> n;
		for (int i = 1; i <= n; ++i)
			fin >> v[i];
		if (n == 1)
		{
			fout << 1 << '\n';
			continue;
		}
		if (vB(1) == n || vC(1) == n)
			fout << 1 << '\n';
		else
			fout << 0 << '\n';
	}
	fin.close();
	fout.close();
	return 0;
}