Pagini recente » Cod sursa (job #2549996) | Cod sursa (job #552477) | Cod sursa (job #2478262) | Cod sursa (job #2358854) | Cod sursa (job #1048346)
#include <stdio.h>
#define A 10000
#define fr(i,a,b) for(int i=a;i<b;++i)
int a[A];
int n,l;
bool cancn(int,int);
bool canbcn(int,int);
bool cana(int i){
return l-i==1;
}
bool canbcn(int i,int n){
if(l-i<5+n)return false;
if(a[i]==2)return canbcn(i+1,n);
if(a[i]==1&&a[i+2]==3)return cancn(i+4,n+1);
return false;
}
bool cancn(int i,int n){
if(n==0) return l-i==0;
if(l-i<n)return false;
if(a[i]==2)return cancn(i+1,n-1);
if(l-i<n+2)return false;
if(a[i]==1&&a[i+1]==2)return cancn(i+3,n-1);
if(a[i]==3)return canbcn(i+1,n);
return false;
}
int main(){
freopen("perle.in","r",stdin);
freopen("perle.out","w",stdout);
scanf("%i",&n);
fr(i,0,n){
scanf("%i",&l);
fr(j,0,l)scanf("%i",a+j);
int s=cana(0)||canbcn(0,0)||cancn(0,1);
printf("%i\n",s);
}
return 0;
}