Pagini recente » Cod sursa (job #2142585) | Cod sursa (job #1250160) | Cod sursa (job #1130667) | Cod sursa (job #1017047) | Cod sursa (job #1366196)
#include<stdio.h>
#define MAXL 10005
FILE *f=fopen("perle.in","r"), *g=fopen("perle.out","w");
long int T, t, L, v[MAXL];
bool B(long int ind);
bool C(long int ind);
bool Rezolvare(){
if( L == 1 ) return 1;
if( B(1) == 1 ) return 1;
if( C(1) == 1 ) return 1;
}
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;
}
bool 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;
}
bool C(long int ind){
if( ind > L ) return 0;
if( v[ind] == 2 && ind == L ) return 1;
if( v[ind] == 1 && v[ind+1] == 2 && ind+2 == L ) return 1;
if( v[ind] == 3 ){
ind++;
while( v[ind] == 2 ) ind++;
return C(ind);
}
return 0;
}