Cod sursa(job #193609)

Utilizator Matei14Popa-Matei Mihai Matei14 Data 5 iunie 2008 13:37:21
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<stdio.h>
int v[10005],t;
int dragon(int);
int balaur(int n){
    if (v[n]==2)
		return balaur(n+1);
    if (v[n]==1 && v[n+2]==3)
		return dragon(n+4);
    return dragon(n+1);
}
int dragon(int n){
    if(v[n]==2){
        if(n==t)
			return 1;
		return dragon(n+1);      
    }
    if(v[n]==1&&v[n+1]==2){
        if(n+2==t)
			return 1;
		return dragon(n+3);
	}
	if (v[n]==3)
		return balaur(n+1);
	return 0;
}
int solve(){
	if(t==1)
		return 1;
	else
		if(t==2)
			return 0;
	if(v[1]==3)
		return dragon(1);
	return balaur(1);
}
int main(){
	int n,i,j;
    freopen("perle.in","r",stdin);
	freopen("perle.out","w",stdout);
	scanf("%d",&n);
	for(i=0;i<n;++i){   
        scanf("%d",&t);
		for(j=1;j<=t;++j)
			scanf("%d ",&v[j]);
		printf("%d\n",solve());
	}
	return 0;
}