Cod sursa(job #744097)

Utilizator Mihai22eMihai Ionut Enache Mihai22e Data 7 mai 2012 15:15:52
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<stdio.h>
#define NMAX 10005
int n, i, j, v[ NMAX ], t;
int B(int i);

int C(int i);

int B(int i)
{
	if(i > n)
		return 1;
	if(v[i] == 2)
		return B(i+1);
	if(v[i] == 1 && v[i+2] == 3 && i + 4 <= n)
			return C(i+4);
	return 0;
}
int C(int i)
{
	if(i > n)
		return 1;
	if(v[i] == 2)
		return i+1;
	if(v[i] == 1 && v[i+1] == 2 && i + 2 <= n)
		return i+3;
	if(v[i] != 3)
		return 0;
	i = B(i+1);
	if(i)
		return C(i);
	return 0;
}
int main()
{
	FILE *f = fopen("perle.in", "r");
	FILE *g = fopen("perle.out", "w");
	fscanf(f, "%d", &t);
	while(t)
	{
		fscanf(f, "%d", &n);
		for(i = 1; i <= n; i++)
			fscanf(f, "%d", &v[i]);
		if(n == 1 || C(1) > n || B(1) > n)
			fprintf(g, "%d\n", 1);
		else
			fprintf(g, "%d\n", 0);
		t--;
	}
	fclose(f);
	fclose(g);
	return 0;
}