Cod sursa(job #797901)

Utilizator FlameingoAiordachioaei Marius Flameingo Data 15 octombrie 2012 09:53:03
Problema Perle Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<cstdio>
#define DMAX 10001
using namespace std;
char v[DMAX];short n;
int c(int l);
short b(int l)
{
	if(l>n)
		return -DMAX;
	if(v[l]==2)
		return 1+b(l+1);
	if(v[l]==1&&v[l+2]==3)
		return 4+c(l+4);
	return -DMAX;
}
short 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>0)
			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\n");
		else
			printf("%d\n",c(1)==n||b(1)==n);
	}
}