Cod sursa(job #238142)

Utilizator Bogdan_tmmTirca Bogdan Bogdan_tmm Data 31 decembrie 2008 17:57:58
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include<iostream.h>
#include<stdio.h>
FILE *f=fopen("perle.in","r"),*g=fopen("perle.out","w");
int n,a[10001];
int c(int);
int b(int);
int b(int i)
{
	if(*(a+i)==2)
		return b(i+1);
	if(*(a+i)==1&&*(a+2+i)==3)
		return c(i+4);
	return c(i+1);
}
int c(int i)
{
	if(*(a+i)==2)
	{
		if(i==n)
			return 1;
		return c(i+1);
	}
	if(*(a+i)==1&&*(a+i+1)==2)
	{
		if(i+2==n)
			return 1;
		return c(i+3);
	}
	if(*(a+i)==3)
		return b(i+1);
	return 0;
}
int solve()
{
	if(n==1)
		return 1;
	if(n==2)
		return 0;
	if(a[1]==3)
		return c(1);
	return b(1);
}
int main()
{
	int len;
	fscanf(f,"%d",&len);
	for(int i=1;i<=len;i++)
	{
		fscanf(f,"%d",&n);
		for(int j=1;j<=n;j++)
			fscanf(f,"%d",&a[j]);
		fprintf(g,"%d\n",solve());
	}
	return 0;
}