Cod sursa(job #390844)

Utilizator pykhNeagoe Alexandru pykh Data 4 februarie 2010 18:08:46
Problema Perle Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include<stdio.h>

const char in[]="perle.in";
const char out[]="perle.out";

const int N=10005;

int v[N], n;
int c(int i);
int b(int i);
int a()
	{
		if(n == 1)
			return 1;
		if(n == 2)
			return 0;
		if(v[1] == 3)
			return c(1);
		return b(1);
}

int b(int i)
	{
		if(v[i] == 2)
			return b(i+1);
		if(v[i] == 1 && v[i+2] == 3)
			return c(i+4);
		return c(i+1);
}

int c(int i)
	{
		if(v[i] == 2 && i == n)return 1;
		if(v[i] == 2) return c(i+1);
		if(v[i] == 3) return b(i+1);
		if(v[i] == 1 && v[i+1] == 2 && i+2 == n) return 1;
		if(v[i] == 1 && v[i+1] == 2)return c(i+3);
}

int main()
	{
		freopen(in,"r",stdin);
		freopen(out,"w",stdout);
		int T, j;
		scanf("%d", &T);
		for(;T--;)
			{
				scanf("%d", &n);
			for(j=1;j<=n;++j)
				scanf("%d", &v[j]);
				printf("%d\n", a());
		}
		return 0;
}