Cod sursa(job #825542)

Utilizator TeOOOVoina Teodora TeOOO Data 29 noiembrie 2012 10:23:28
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
//Include
#include <stdio.h>
using namespace std;

//Variabile
FILE *in,*out;

#define MAX 10005

int nr,n,v[MAX];
int b(int poz);
int c(int poz);

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

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



int main(void)
{
    in=fopen("perle.in","rt");
    out=fopen("perle.out","wt");
	fscanf(in,"%d",&nr);
	for(int i=1;i<=nr;++i)
	{
		fscanf(in,"%d",&n);
		for(int j=1;j<=n;++j)
			fscanf(in,"%d",&v[j]);
		if(n==1)
			fprintf(out,"1\n");
		else fprintf(out,"%d\n",(b(1)==n+1 || c(1)==n+1 ? 1: 0));
	}
    fclose(in);
    fclose(out);
    return 0;
}

//Ce stil are ->