Cod sursa(job #690469)

Utilizator ms-ninjacristescu liviu ms-ninja Data 25 februarie 2012 17:32:54
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <cstdio>
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+3);
	}
	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()
{
	freopen("perle.in","r",stdin);
	freopen("perle.out","w",stdout);
	scanf("%ld",&t);
	for( ; t ;--t)
	{
		scanf("%ld",&n);
		for(int i=1;i<=n;++i)
			scanf("%ld",&a[i]);
		printf("%ld\n",solve());
	}
	return 0;
}