Cod sursa(job #315998)

Utilizator GheorgheMihaiMihai Gheorghe GheorgheMihai Data 17 mai 2009 22:40:47
Problema Perle Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include<stdio.h>
int n;
int v[10002];

int rez_c(int x);
int rez_b(int x); 

int rez_c(int x)
{
	if(x>n)
		return 0;
	if(v[x]==2)
	{
		if(x==n)
			return 1;
		return rez_c(x+1);
	}
	if(v[x]==1 && v[x+1]==2)
	{
		if(x+2==n)
			return 1;
		rez_c(x+3);
	}
	if(v[x]==3)
		return rez_b(x+1);
	return 0;
}

int rez_b(int x)
{
	if(x>n)
		return 0;
	if(v[x]==2)
		return rez_b(x+1);
	if(v[x]==1 && v[x+2]==3 && (x+4<=n))
		return rez_c(x+4);
	return 0;
}

int rez()
{
	if(n==1)
		return 1;
	if(n==2)
		return 0;
	if(v[1]==3)
		return rez_c(1);
	return rez_b(1);
}

void read()
{
	freopen("perle.in","r",stdin);
	freopen("perle.out","w",stdout);
	int t,i;
	scanf("%d",&t);
	for(;t;t--)
	{
		scanf("%d",&n);
		for(i=1;i<=n;i++)
			scanf("%d",&v[i]);
		printf("%d\n",rez());
	}
}

int main()
{
	read();
	return 0;
}