Cod sursa(job #446552)

Utilizator Anamaria20Cotirlea Anamaria Anamaria20 Data 26 aprilie 2010 08:40:51
Problema Perle Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <stdio.h>

FILE *f,*s;

int m,n,i,j,v[10005];

int Solve();
int SolveB(int k);
int SolveC(int k);

int Solve()
{
	if(n==1) return 1;
	
	if(n==2) return 0;
	
	if(v[1]==1 || v[1]==2) return SolveB(1);
	
	if(v[1]==3) return SolveC(1);
}

int SolveB(int k)
{
	if(v[k]==2) return SolveB(k+1);
	if(v[k]==1 && v[k+2]==3) return SolveC(k+4);

	return SolveC(k+1);
}

int SolveC(int k)
{
	if(v[k]==2)
	{
		if(k==n)
			return 0;
		else
			return SolveC(i+1);
	}	
	
	if(v[k]==1 && v[k+1]==2) 
	{ 
		if(k+2==n) 
			return 1; 
        
		return SolveC(k+3); 
	}	 
    
	if(v[k]==3) 
		return SolveB(k+1); 
    
	return 0; 
}

int main()
{
	f=fopen("perle.in","r");
	s=fopen("perle.out","w");
	
	fscanf(f,"%d",&m);
	
	for(i=1;i<=m;i++)
	{
		fscanf(f,"%d",&n);
		
		for(j=1;j<=n;j++)
			fscanf(f,"%d",&v[i]);
		
		fprintf(s,"%d\n",Solve());
	}		
	
	fclose(s);
	
	return 0;
}