Cod sursa(job #749968)

Utilizator matei_cChristescu Matei matei_c Data 19 mai 2012 20:35:03
Problema Perle Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 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 -1 ;
	if(v[poz] == 2)
		return ok_B(poz+1) ;
	if(v[poz]==1 && v[poz+2]==3)
		return ok_C(poz+4) ;
	return -1 ;	
}

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

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]);
		int sol = ok_B(1) ;
		if(sol != len+1)
			sol = ok_C(1) ;
		if(len==1 || sol==len+1)
			printf("1\n");
		else
			printf("0\n");
	}	
	
	return 0;
	
}