Cod sursa(job #183286)

Utilizator Mishu91Andrei Misarca Mishu91 Data 21 aprilie 2008 21:56:33
Problema Perle Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <cstdio>

#define Nmax 10001

int a[Nmax],L;

int fc(int k);

int fb(int k)
{
    if(a[k] == 2)
        return fb(k+1);

    if(a[k] == 1 && a[k+2] == 3)
        return fc(k+4);

    return 0;
}

int fc(int k)
{
    if(a[k] == 2 )
    {
        if(k == L-1)
            return 1;

        return 0;
    }

    if(a[k] == 1 && a[k+1] == 2)
    {
        if(k+3 == L)
            return 1;

        return 0;
    }

    if(a[k] == 3)
        return fb(k+1) && fc(k+2);

    return 0;
}

int solve()
{
    scanf("%d",&L);

    for(int i=0; i<L; i++)
        scanf("%d",a + i);

    if(L == 1)
        return 1;

    if(L == 2)
        return 0;

    if(a[0] == 3)
        return fc(0);

    return fb(0);
}

int main()
{
    freopen("perle.in","r",stdin);
    freopen("perle.out","w",stdout);

    int nrt;
    scanf("%d",&nrt);

    for(int i=0; i<nrt; i++)
        printf("%d\n",solve());
}