Cod sursa(job #880750)

Utilizator ephgstefana gal ephg Data 17 februarie 2013 11:34:03
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<cstdio>

#define BM 10005

int n,dim,ok;
int s[BM];

int B(int c),C(int c);

int B(int c){
    if(c>dim)return 0;
    if(s[c]==2)return B(++c);
    if(s[c]==1&&s[c+2]==3)return C(c+4);
    return 0;
}

int C(int c){
    if(c>dim)return 0;
    if(s[c]==2)return c;
    if(s[c]==3){
        int ler=B(c+1);
        if(ler)return C(ler+1);
    }
    if(s[c]==1&&s[c+1]==2)return c+2;
    return 0;
}

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