Cod sursa(job #651521)

Utilizator a_h1926Heidelbacher Andrei a_h1926 Data 20 decembrie 2011 18:37:59
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <cstdio>

#define NMax 10005

using namespace std;

int X[NMax], N;

int B (int P); int C (int P);

int B (int P)
{
    if (P>=N+1)
    {
        return -1;
    }
    if (X[P]==2)
    {
        return B (P+1);
    }
    if (X[P]==1 and X[P+2]==3)
    {
        return C (P+4);
    }
    return -1;
}

int C (int P)
{
    if (X[P]==2)
    {
        return P+1;
    }
    if (X[P]==1 and X[P+1]==2)
    {
        return P+3;
    }
    if (X[P]==3)
    {
        return C (B (P+1));
    }
    return -1;
}

int main()
{
    freopen ("perle.in", "r", stdin);
    freopen ("perle.out", "w", stdout);
    int T;
    scanf ("%d", &T);
    for (; T>0; --T)
    {
        scanf ("%d", &N);
        for (int i=1; i<=N; ++i)
        {
            scanf ("%d", &X[i]);
        }
        int S=B (1);
        if (S!=N+1)
        {
            S=C (1);
        }
        if (N==1 or S==N+1)
        {
            printf ("1\n");
            continue;
        }
        printf ("0\n");
    }
    return 0;
}