Pagini recente » Cod sursa (job #2502286) | Cod sursa (job #533750) | Cod sursa (job #2160426) | Cod sursa (job #3182878) | Cod sursa (job #2211369)
#include <stdio.h>
#define MAX 10000
FILE *fin,*fout;
int v[MAX],l,poz;
int c();
int a(){
if(poz>=l)
return -1;
return poz;
}
int b(){
if(poz>=l)
return -1;
if(v[poz]==2){
poz++;
return b();
}
if(v[poz]==1 && v[poz+2]==3){
poz+=4;
return c();
}
return -1;
}
int c(){
if(poz>=l)
return -1;
if(v[poz]==2)
return poz;
if(v[poz]==1 && v[poz+1]==2){
poz+=2;
return a();
}
if(v[poz]==3){
poz++;
if(b()){
poz++;
return c();
}
}
return -1;
}
int main(){
fin=fopen("perle.in","r");
fout=fopen("perle.out","w");
int n,i,j;
fscanf(fin,"%d",&n);
for(i=0; i<n; i++){
fscanf(fin,"%d",&l);
for(j=0; j<l; j++)
fscanf(fin,"%d",&v[j]);
int x=0;
poz=0;
x+=(a()==l-1);
poz=0;
x+=(b()==l-1);
poz=0;
x+=(c()==l-1);
if(x)
fprintf(fout,"1\n");
else
fprintf(fout,"0\n");
}
fclose(fin);
fclose(fout);
return 0;
}