Cod sursa(job #690449)

Utilizator ms-ninjacristescu liviu ms-ninja Data 25 februarie 2012 17:14:28
Problema Perle Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>
using namespace std;
#define dim 10010
int a[dim], t, n;
int b(int i);
int c(int i);

int b(int i)
{
	if(a[i]==2)
		return b(i+1); 
	if(a[i]==1 && a[i+2]==3)
		return c(i+4);
	return c(i+1);
}

int c(int i)
{
	if(a[i]==2)
	{
		if(i==n)
			return 1;
		return c(i+1);
	}
	if(a[i]==1 && a[i+1]==2)
	{
		if(i+2==n)
			return 1;
		return c(i+2);
	}
	if(a[i]==3)
		return b(i+1);
	return 0;
}

int solve()
{
	if(n==1)
		return 1;
	if(n==2)
		return 0;
	if(a[1]==3)
		return c(1);
	return b(1);
}

int main()
{
	ifstream fin("perle.in");
	ofstream fout("perle.out");
	
	fin>>t;
	for( ; t ;--t)
	{
		fin>>n;
		for(int i=1;i<=n;++i)
			fin>>a[i];
		fout<<solve() <<'\n';
	}
	return 0;
}