Cod sursa(job #632413)

Utilizator sebii_cSebastian Claici sebii_c Data 11 noiembrie 2011 00:37:29
Problema Perle Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <stdio.h>
#define NMAX 10002

int A[NMAX], m, n;

int C(int pos);

int B(int pos) 
{
    if (pos > n + 1)
	return pos;
    if (A[pos] == 2)
	return B(pos+1);
    if (A[pos] == 1 && A[pos+2] == 3)
	return C(pos+4);
    return n+2;
}

int C(int pos)
{
    if (A[pos] == 2)
	return pos+1;
    if (A[pos] == 1 && A[pos+1] == 2)
	return pos + 3;
    if (A[pos] == 3)
	return C(B(pos+1));
    return n+2;
}
    
int main()
{
    freopen("perle.in", "r", stdin);
    freopen("perle.out", "w", stdout);
    scanf("%d", &m);
    int i, result;
    while (m--) {
	scanf("%d", &n);
	for (i=1; i<=n; ++i)
	    scanf("%d", &A[i]);
	if (n == 1)
	    result = 1;
	else {
	    result = B(1);
	    if (result != n+1)
		result = C(1);
	    if (result == n+1)
		result = 1;
	    else
		result = 0;
	}
	printf("%d\n", result);
    }	
    return 0;
}