Pagini recente » Cod sursa (job #572812) | Cod sursa (job #2710413) | Cod sursa (job #1259781) | Cod sursa (job #1453222) | Cod sursa (job #1366228)
#include<stdio.h>
#define MAXL 10005
FILE *f=fopen("perle.in","r"), *g=fopen("perle.out","w");
long int T, t, L, v[MAXL];
long int B(long int ind);
long int C(long int ind);
bool Rezolvare(){
if( L == 1 ) return 1;
if( B(1) == L ) return 1;
if( C(1) == L ) return 1;
return 0;
}
int main(){
fscanf(f,"%ld\n",&T);
for(t=1;t<=T;t++){
fscanf(f,"%ld",&L);
for(long int i=1;i<=L;i++) fscanf(f,"%ld",&v[i]);
fprintf(g,"%ld\n",Rezolvare());
}
return 0;
}
long int B(long int ind){
if( ind > L ) return 0;
if( v[ind] == 2 ) return B(ind+1);
if( v[ind] == 1 && v[ind+2] == 3 ) return C(ind+4);
return 0;
}
long int C(long int ind){
if( ind > L ) return 0;
if( v[ind] == 2 ) return ind;
if( v[ind] == 1 && v[ind+1] == 2 ) return ind+2;
if( v[ind] == 3 ){
ind = B(ind+1);
if( ind == 0 ) return 0;
return C(ind+1);
}
return 0;
}