Pagini recente » Cod sursa (job #1892568) | Cod sursa (job #1549367) | Cod sursa (job #1611767) | Cod sursa (job #640076) | Cod sursa (job #534306)
Cod sursa(job #534306)
#include<stdio.h>
FILE*f=fopen("perle.in","r");
FILE*g=fopen("perle.out","w");
int i,S[10005],n,q;
int C(int i);
int B(int i){
if ( i > n || S[i] == 3 || ( S[i] == 1 && S[i+2] != 3 ))
return 0;
if ( S[i] == 1 && i < n - 3 ){
return C(i+4);
}
if ( S[i] == 2 && i < n){
return B(i+1);
}
return 0;
}
int C(int i){
if ( i > n )
return 0;
if ( S[i] == 2 ){
return i + 1;
}
if ( S[i] == 3 ){
i = B(i+1);
if ( i >= 1 && i <= n )
return C(i);
}
if ( S[i] == 1 && S[i+1] == 2 && i + 2 <= n ){
return i + 3;
}
return 0;
}
int main () {
fscanf(f,"%d",&q);
while( q-- ){
fscanf(f,"%d",&n);
for ( i = 1 ; i <= n ; ++i )
fscanf(f,"%d",&S[i]);
if ( n == 1 ){ fprintf(g,"1\n"); continue; }
if ( B(1) > n ){ fprintf(g,"1\n"); continue; }
if ( C(1) > n ){ fprintf(g,"1\n"); continue; }
fprintf(g,"0\n");
}
fclose(f);
fclose(g);
return 0;
}