Cod sursa(job #216579)

Utilizator bogdanhm999Casu-Pop Bogdan bogdanhm999 Data 24 octombrie 2008 22:14:09
Problema Perle Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <stdio.h>
long T,n,k,i,a[10240];
bool pB();bool pC();

bool pB(){
   if (k>n)return 0;
   if (a[k]==1){
      if (k+4>n)return 0;
      if (a[k+2]!=3)return 0;
      k+=4;return pC();
   }
   if (a[k]==2){k++;return pB();}
return 0;
}
bool pC(){
   if (k>n)return 0;
   if (k<=n&&a[k]==2){k++;return 1;}
   if (a[k]==2)return 1;
   if (a[k]==3){if (k+6>n)return 0; k++; pB(); pC();}
   if (a[k]==1){if(k+2>n)return 0; if (a[k+1]!=2)return 0;else {k+=3;return 1;}}
return 0;
}

int main(){
    freopen("perle.in","r",stdin);
    freopen("perle.out","w",stdout);
    scanf("%ld\n",&T);
    while(T--){
       scanf("%ld ",&n);for (i=1;i<=n;++i)scanf("%ld",&a[i]);
       if (n==1){printf("1\n");continue;}
       k=1;
       if (pB()&&k>n)printf("1\n");
       else {k=1;if (pC()&&k>n)printf("1\n");
                 else printf("0\n");
            }
    }
return 0;
}