Cod sursa(job #1876638)

Utilizator Gigel-FroneGigel Fronel Gigel-Frone Data 12 februarie 2017 15:14:54
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <cstdio>

using namespace std;

int v[10002];
int B(int i), C(int i);

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 -1;
}
int C(int i)
{
	if(v[i]==2) return i+1;
	if(v[i]==3) return C(B(i+1));
	if(v[i]==1 && v[i+1]==2) return i+3;
	return -1;
}

int main()
{
	freopen("perle.in", "r", stdin);
	freopen("perle.out", "w", stdout);
	
	int n, t;
	scanf("%d", &n);
	for(int i=1; i<=n; i++)
	{
		scanf("%d", &t);
		for(int j=1; j<=t; j++) scanf("%d", &v[j]);
		if(t == 1) printf("1\n");
		else
		{
			if(B(1)==t+1 || C(1)==t+1) printf("1\n");
			else printf("0\n");
		}
	}
}