Cod sursa(job #163347)

Utilizator mihai_floreaFlorea Mihai Alexandru mihai_florea Data 21 martie 2008 23:51:03
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.21 kb
//perle
#include <cstdio>
int n,m,i,x[10002];
void b();
void c(){
 if (i<=m)
     switch(x[i]){
        case 1: if (x[i+1]==2 || i==m) i+=2; 
                break;
        case 3: i++;
                b();
                i++;
                c();
                break;
        }
}
void b(){
 if (i<=m)
     switch(x[i]){
        case 1: i+=4;
                c();
                break;
        case 2: i++;
                b();
        }
}             
int main(){
    freopen("perle.in","r",stdin);
    freopen("perle.out","w",stdout);
    scanf("%d",&n);
    while (n--){
          scanf("%d ",&m);
          for (i=1;i<=m;i++) scanf("%d ",&x[i]);
          if (m==1) printf("1\n");
                  else
          if (m==2) printf("0\n");
                  else
          if (m==3)
           if (x[1]==1 && x[2]==2) printf("1\n");
                            else  printf("0\n");
                  else
           {i=1;
            if (x[1]==1 || x[1]==2) b();
                               else c();
            if (i==m) printf("1\n");
                 else printf("0\n");
             }
            }
    return 0;
}