Pagini recente » Cod sursa (job #2941791) | Cod sursa (job #1103312) | Cod sursa (job #2801437) | Cod sursa (job #2298992) | Cod sursa (job #413611)
Cod sursa(job #413611)
#include <cstdio>
FILE* fin=fopen("perle.in","r");
FILE* fout=fopen("perle.out","w");
int vec[10001],len,aux;
int try_b(int),try_c(int);
int try_b(int pos){
if(vec[pos]==2){
return try_b(pos+1);
}
if(vec[pos]==1&&vec[pos+2]==3){
return try_c(pos+4);
}
return try_c(pos+1);
}
int try_c(int pos){
if(vec[pos]==2&&pos==len-1){
return true;
}
if(vec[pos]==1&&vec[pos+1]==2&&pos+3==len){
return true;
}
if(vec[pos]==2){
return try_c(pos+1);
}
if(vec[pos]==3){
return try_b(pos+1);
}
if(vec[pos]==1&&vec[pos+1]==2){
return try_c(pos+3);
}
return 0;
}
inline int process(){
if(len==1){
return 1;
}else if(len==2){
return 0;
}
if(vec[1]==3){
return try_c(0);
}else{
return try_b(0);
}
}
int main(){
int n;
fscanf(fin,"%u",&n);
for(int i=0;i<n;i++){
fscanf(fin,"%u",&len);
for(int i=0;i<len;i++){
fscanf(fin,"%u",&vec[i]);
}
fprintf(fout,"%u\n",process());
}
fclose(fin);
fclose(fout);
return 0;
}