Cod sursa(job #475827)

Utilizator eudanipEugenie Daniel Posdarascu eudanip Data 8 august 2010 18:13:09
Problema Perle Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include<stdio.h>

int v[10007],t,n;

int C(int poz);

int B(int poz)
{
    if(poz<n && v[poz]==2)
        return B(poz+1);
    if(poz+3<n && v[poz]==1 && v[poz+2]==3)
        return C(poz+4);
    return 0;
}

int C(int poz)
{
    if(v[poz]==2)
        return poz+1;
    if(poz+1<n && v[poz]==1 && v[poz+1]==2)
        return poz+3;
    if(poz+1<n && v[poz]==3)
    {
        int val=B(poz+1);
        if(!val)
            return 0;
        return C(val);
    }
    return 0;
}

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