Pagini recente » Cod sursa (job #1517490) | Cod sursa (job #1060990) | Cod sursa (job #2820262) | Cod sursa (job #1616806) | Cod sursa (job #2565979)
#include<bits/stdc++.h>
using namespace std;
const int NMAX=10005;
int p[NMAX],i,n,nr;
int B();
int C();
int B(){
if(p[i]==2){
i++;
return B();
}
else
if(p[i]==1){
if(p[i+2]==3){
i+=4;
return C();
}
return 0;
}
return 0;
}
int C(){
if(p[i]==2 && (i==n || nr))
return 1;
else
if(p[i]==1 && p[i+1]==2 && (i+2==n||nr)){
i+=2;
return 1;
}
else if(p[i]==3){
nr++;
i++;
int a=B();
nr--;
i++;
int b=C();
return a&&b;
}
return 0;
}
int main(){
freopen("perle.in","r",stdin);
freopen("perle.out","w",stdout);
int T;
scanf("%d\n", &T);
for(int k=1;k<=T;k++){
scanf("%d ", &n);
for(int q=1;q<=n;q++)
scanf("%d ", &p[q]);
i=1;
if(n==1){
printf("1\n");
p[1]=0;
continue;
}
if(p[1]==1){
if(n==3)
printf("%d\n", C());
else
printf("%d\n", B());
}
else
if(p[1]==2)
printf("%d\n", B());
else
printf("%d\n", C());
for(int q=1;q<=n;q++)
p[q]=0;
}
return 0;
}