Cod sursa(job #797882)

Utilizator FlameingoAiordachioaei Marius Flameingo Data 15 octombrie 2012 09:09:26
Problema Perle Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<cstdio>
#define DMAX 10001
using namespace std;
int v[DMAX],n;
int c(int l);
int b(int l)
{
	if(l>n)
		return 0;
	if(v[l]==2)
		return 1+b(l+1);
	if(v[l]==1&&v[l+2]==3)
		return 4+c(l+4);
	return 0;
}
int c(int l)
{
	if(l>n)
		return 0;
	if(v[l]==2)
		return 1;
	if(v[l]==3)
	{
		int k;
		k=b(l+1);
		if(k)
			return k+1+c(l+k+1);
	}
	if(v[l]==1&&v[l+1]==2)
		return 3;
	return 0;
}
int main()
{
	freopen("perle.in","r",stdin);freopen("perle.out","w",stdout);
	int i,t;
	for(scanf("%d",&t);t--;)
	{
		scanf("%d",&n);
		for(i=1;i<=n;i++)
			scanf("%d",&v[i]);
		if(n==1)
			printf("1");
		else
			printf("%d\n",c(1)==n||(b(1)==n));
	}
}