Cod sursa(job #555572)

Utilizator Eugen01Vasilescu Eugen Eugen01 Data 15 martie 2011 16:53:40
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<stdio.h>
int a[10009],q,t,i,j,n,m;

int C(int);

int B(int i)
{
	if (a[i]==2&&i+1<=n) return B(i+1);
	if (a[i]==1&&a[i+2]==3&&i+4<=n) return C(i+4);
	return 0;
}

int C(int i)
{
	if (a[i]==2&&i==n) return n+1;
		else if (a[i]==2) return i+1;
	if (a[i]==1&&a[i+1]==2&&i+2<=n) return i+3;
		else if (a[i]==1) return 0;
	if (a[i]==3)
	{
		q=B(i+1);
		if (q>=1&&q<=n) return C(q);
			else return 0;
	}
	return 0;
}

int main()
{
	freopen("perle.in","r",stdin);
	freopen("perle.out","w",stdout);
	
	scanf("%d",&t);
	for (i=1;i<=t;i++)
	{
		scanf("%d",&n);
		for (j=1;j<=n;j++)
			scanf("%d",&a[j]);
		
		if (B(1)>n||C(1)>n||n==1) printf("1\n");
			else printf("0\n");
	}
	return 0;
}