Cod sursa(job #749974)

Utilizator matei_cChristescu Matei matei_c Data 19 mai 2012 20:42:01
Problema Perle Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include<cstdio>

const int MAX_N = 11 ;

int v[MAX_N] ;
int len ;
int n ;

int ok_B(int poz) ;
int ok_C(int poz) ;

int ok_B(int poz)
{
	if(poz > len+1)
		return poz ;
	if(v[poz] == 2)
		return ok_B(poz+1) ;
	if(v[poz] == 1 && v[poz+2] == 3)
		return ok_C(poz+4) ;
	return len+2 ;
}

int ok_C(int poz)
{
	if(poz > len+1)
		return poz ;
	if(v[poz] == 2)
		return poz+1 ;
	if(v[poz] == 3)
		return ok_C(ok_B(poz+1)) ;
	if(v[poz] == 1 && v[poz+1] == 2)
		return poz+3 ;
	return len+2 ;
}

int main()
{
	
	freopen("perle.in","r",stdin);
	freopen("perle.out","w",stdout);
	
	scanf("%d",&n);
	++n ;
	
	while(--n)
	{
		scanf("%d",&len);
		for(int i=1;i<=len;++i)
			scanf("%d",&v[i]);
		if(len == 1)
			printf("1\n");
		else
		{
			int sol = ok_B(1) ;
			if(sol != len+1)
				sol = ok_C(1) ;
			if(sol == len+1)
				printf("1\n");
			else
				printf("0\n");
		}
	}	
	
	return 0;
	
}