Cod sursa(job #943579)

Utilizator mitrutstrutMitrea Andrei Ionut mitrutstrut Data 25 aprilie 2013 21:49:30
Problema Perle Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<f#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;
}